Funkcija msgrcv neće uspjeti ako: [E2BIG] Vrijednost mtext je veća od msgsz i (msgflg & MSG_NOERROR) je 0. [EACCES]
Da li Msgrcv blokira?
Funkcije msgsnd i msgrcv se mogu izvršiti kao blokirajuće ili neblokirajuće operacije. Neblokirajuće operacije omogućavaju asinhroni prijenos poruka -- proces se ne obustavlja kao rezultat slanja ili primanja poruke.
Da li msgrcv uklanja poruku iz reda čekanja?
msgrcv sistemski poziv uklanja poruku iz reda koje je specificirao msqid i stavlja je u bafer na koji ukazuje msgp. Argument msgsz specificira maksimalnu veličinu u bajtovima za člana mtext strukture na koju ukazuje argument msgp.
Kako msgrcv radi?
Funkcija msgrcv čita poruku iz reda poruka specificiranog parametrom msqid i postavlja je u korisnički definirani bafer na koji ukazuje parametar msgp. Parametar msgp ukazuje na korisnički definirani bafer koji mora sadržavati sljedeće: Polje tipa long int koje specificira tip poruke.
Šta vraća msgrcv?
POVRATNA VRIJEDNOST
Po uspješnom završetku, msgrcv vraća vrijednost jednaku broju bajtova koji su stvarno smješteni u bafer mtext. U suprotnom, poruka neće biti primljena, msgrcv će vratiti (size_t)-1 i errno će biti postavljen da ukaže na grešku.