Funkcija msgrcv neće uspjeti ako: [E2BIG] Vrijednost mtext je veća od msgsz i (msgflg & MSG_NOERROR) je 0. [APRI
Blokira li Msgrcv?
Funkcije msgsnd i msgrcv mogu se izvršiti kao blokirajuće ili neblokirajuće operacije. Neblokirajuće operacije omogućuju asinkroni prijenos poruka -- proces se ne obustavlja kao rezultat slanja ili primanja poruke.
Uklanja li msgrcv poruku iz reda čekanja?
Sistemski poziv msgrcv uklanja poruku iz reda koje je specificirao msqid i stavlja je u međuspremnik na koji ukazuje msgp. Argument msgsz specificira maksimalnu veličinu u bajtovima za član mtext strukture na koju ukazuje argument msgp.
Kako msgrcv radi?
Funkcija msgrcv čita poruku iz reda poruka određenog parametrom msqid i stavlja je u korisnički definirani međuspremnik na koji ukazuje parametar msgp. Parametar msgp ukazuje na korisnički definirani međuspremnik koji mora sadržavati sljedeće: Polje tipa long int koje specificira tip poruke.
Što vraća msgrcv?
POVRATNA VRIJEDNOST
Nakon uspješnog završetka, msgrcv vraća vrijednost jednaku broju bajtova koji su stvarno smješteni u međuspremnik mtext. U suprotnom, poruka neće biti primljena, msgrcv će vratiti (size_t)-1 i errno će biti postavljen da ukaže na pogrešku.