Funktsioon msgrcv nurjub, kui: [E2BIG] Mtext väärtus on suurem kui msgsz ja (msgflg & MSG_NOERROR) on 0. [EACCES]
Kas Msgrcv blokeerib?
Funktsioone msgsnd ja msgrcv saab täita kas blokeerivate või mitteblokeerivate toimingutena. Mitteblokeerivad toimingud võimaldavad sõnumite asünkroonset edastamist – protsessi ei peatata sõnumi saatmise või vastuvõtmise tõttu.
Kas msgrcv eemaldab kirja järjekorrast?
Süsteemikõne msgrcv eemaldab sõnumi msqid määratud järjekorrast ja asetab selle puhvrisse, millele osutab msgp. Argument msgsz määrab argumendiga msgp osutatava struktuuri liikme mteksti maksimaalse suuruse baitides.
Kuidas msgrcv töötab?
Funktsioon msgrcv loeb sõnumi parameetriga msqid määratud sõnumijärjekorrast ja asetab selle kasutaja määratud puhvrisse, millele osutab msgp parameeter. Parameeter msgp osutab kasutaja määratud puhvrile, mis peab sisaldama järgmist: Long int tüüpi väli, mis määrab sõnumi tüübi.
Mida msgrcv tagastab?
RETURN VALUE
Edukal lõpetamisel tagastab msgrcv väärtuse, mis võrdub tegelikult puhvrisse mtext paigutatud baitide arvuga. Vastasel juhul ei võeta teadet vastu, msgrcv tagastab (ssize_t)-1 ja errno seatakse vea näitamiseks.