La funzione msgrcv fallisce se: [E2BIG] Il valore di mtext è maggiore di msgsz e (msgflg & MSG_NOERROR) è 0. [EACCES]
Msgrcv si blocca?
Le funzioni msgsnd e msgrcv possono essere eseguite come operazioni di blocco o non di blocco. Le operazioni non bloccanti consentono il trasferimento asincrono dei messaggi: il processo non viene sospeso a causa dell'invio o della ricezione di un messaggio.
msgrcv rimuove il messaggio dalla coda?
La chiamata di sistema msgrcv rimuove un messaggio dalla coda specificata da msqid e lo inserisce nel buffer indicato da msgp. L'argomento msgsz specifica la dimensione massima in byte per il membro mtext della struttura a cui punta l'argomento msgp.
Come funziona msgrcv?
La funzione msgrcv legge un messaggio dalla coda dei messaggi specificata dal parametro msqid e lo inserisce nel buffer definito dall'utente a cui punta il parametro msgp. Il parametro msgp punta a un buffer definito dall'utente che deve contenere quanto segue: Un campo di tipo long int che specifica il tipo del messaggio.
Cosa restituisce msgrcv?
RETURN VALUE
Al completamento con successo, msgrcv restituisce un valore uguale al numero di byte effettivamente inseriti nel buffer mtext. In caso contrario, non verrà ricevuto alcun messaggio, msgrcv restituirà (ssize_t)-1 e errno verrà impostato per indicare l'errore.