msgrcv-funksjonen skal mislykkes hvis: [E2BIG] Verdien av mtext er større enn msgsz og (msgflg & MSG_NOERROR) er 0. [EACCES]
Blokkerer Msgrcv?
Msgsnd- og msgrcv-funksjonene kan utføres som enten blokkerende eller ikke-blokkerende operasjoner. Ikke-blokkerende operasjoner tillater asynkron meldingsoverføring -- prosessen stanses ikke som et resultat av sending eller mottak av en melding.
Fjerner msgrcv meldingen fra køen?
msgrcv-systemanropet fjerner en melding fra køen spesifisert av msqid og plasserer den i bufferen pekt på av msgp. Argumentet msgsz spesifiserer maksimal størrelse i byte for medlem-mteksten til strukturen pekt på av msgp-argumentet.
Hvordan fungerer msgrcv?
msgrcv-funksjonen leser en melding fra meldingskøen spesifisert av msqid-parameteren og plasserer den i den brukerdefinerte bufferen pekt på av msgp-parameteren. msgp-parameteren peker til en brukerdefinert buffer som må inneholde følgende: Et felt av typen long int som spesifiserer meldingens type.
Hva returnerer msgrcv?
RETURN VALUE
Ved vellykket gjennomføring returnerer msgrcv en verdi lik antallet byte som faktisk er plassert i bufferen mtext. Ellers vil ingen melding bli mottatt, msgrcv vil returnere (ssize_t)-1 og errno vil bli satt til å indikere feilen.