Funkcia msgrcv zlyhá, ak: [E2BIG] Hodnota mtext je väčšia ako msgsz a (msgflg & MSG_NOERROR) je 0. [EACCES
Blokuje Msgrcv?
Funkcie msgsnd a msgrcv môžu byť vykonávané ako blokujúce alebo neblokujúce operácie. Neblokujúce operácie umožňujú asynchrónny prenos správ – proces nie je pozastavený v dôsledku odoslania alebo prijatia správy.
Odstráni msgrcv správu z poradia?
Systémové volanie msgrcv odstráni správu z frontu určeného msqid a umiestni ju do vyrovnávacej pamäte, na ktorú ukazuje msgp. Argument msgsz určuje maximálnu veľkosť v bajtoch pre mtext člena štruktúry, na ktorú poukazuje argument msgp.
Ako funguje msgrcv?
Funkcia msgrcv prečíta správu z frontu správ špecifikovaného parametrom msqid a umiestni ju do užívateľom definovanej vyrovnávacej pamäte, na ktorú ukazuje parameter msgp. Parameter msgp ukazuje na používateľom definovanú vyrovnávaciu pamäť, ktorá musí obsahovať nasledovné: Pole typu long int, ktoré určuje typ správy.
Čo vráti msgrcv?
RETURN VALUE
Po úspešnom dokončení vráti msgrcv hodnotu rovnajúcu sa počtu bajtov skutočne umiestnených do vyrovnávacej pamäte mtext. V opačnom prípade nebude prijatá žiadna správa, msgrcv sa vráti (ssize_t)-1 a nastaví sa errno na označenie chyby.