msgrcv-funktionen mislykkes, hvis: [E2BIG] Værdien af mtext er større end msgsz og (msgflg & MSG_NOERROR) er 0. [EACCES]
Blokerer Msgrcv?
funktionerne msgsnd og msgrcv kan udføres som enten blokerende eller ikke-blokerende operationer. Ikke-blokerende handlinger giver mulighed for asynkron meddelelsesoverførsel -- processen er ikke suspenderet som følge af afsendelse eller modtagelse af en meddelelse.
Fjerner msgrcv beskeden fra køen?
msgrcv-systemkaldet fjerner en besked fra køen specificeret af msqid og placerer den i bufferen, der peges på af msgp. Argumentet msgsz angiver den maksimale størrelse i bytes for medlemmets mtekst af strukturen, der peges på af msgp-argumentet.
Hvordan virker msgrcv?
msgrcv-funktionen læser en besked fra meddelelseskøen specificeret af msqid-parameteren og placerer den i den brugerdefinerede buffer, der peges på af msgp-parameteren. msgp-parameteren peger på en brugerdefineret buffer, der skal indeholde følgende: Et felt af typen long int, der specificerer meddelelsens type.
Hvad returnerer msgrcv?
RETURN VALUE
Ved vellykket afslutning returnerer msgrcv en værdi svarende til antallet af bytes, der faktisk er placeret i bufferen mtext. Ellers vil der ikke blive modtaget nogen besked, msgrcv vil returnere (ssize_t)-1 og errno vil blive indstillet til at angive fejlen.