När misslyckas msgrcv?

Innehållsförteckning:

När misslyckas msgrcv?
När misslyckas msgrcv?
Anonim

Msgrcv-funktionen ska misslyckas om: [E2BIG] Värdet på mtext är större än msgsz och (msgflg & MSG_NOERROR) är 0. [EACCES]

Blockerar Msgrcv?

funktionerna msgsnd och msgrcv kan utföras som antingen blockerande eller icke-blockerande operationer. Icke-blockerande operationer tillåter asynkron meddelandeöverföring -- processen avbryts inte som ett resultat av att ett meddelande skickas eller tas emot.

Tar msgrcv bort meddelandet från kön?

msgrcv-systemanropet tar bort ett meddelande från kön som anges av msqid och placerar det i bufferten som msgp pekar på. Argumentet msgsz anger den maximala storleken i byte för medlemmen mtext i strukturen som pekas på av msgp-argumentet.

Hur fungerar msgrcv?

Msgrcv-funktionen läser ett meddelande från meddelandekön som anges av parametern msqid och placerar det i den användardefinierade bufferten som pekas på av msgp-parametern. Parametern msgp pekar på en användardefinierad buffert som måste innehålla följande: Ett fält av typen long int som anger typen av meddelande.

Vad returnerar msgrcv?

RETURN VALUE

När msgrcv har slutförts returnerar ett värde lika med antalet byte som faktiskt placerats i bufferten mtext. Annars kommer inget meddelande att tas emot, msgrcv kommer att returnera (ssize_t)-1 och errno kommer att ställas in för att indikera felet.

Rekommenderad: