Estratto del documento

Msgrcv: message receive operation

SYNOPSIS

#include <sys/msg.h>
ssize_t msgrcv(int void *msgp, size_t long int msqid, msgsz, msgtyp, int msgflg);

DESCRIPTION

La funzione msgrcv() legge un messaggio dalla coda associata con l'identificatore di coda di messaggi specificato da msqid e lo posiziona nel buffer definito dall'utente a cui punta msgp.

L'argomento msgp punta a un buffer definito dall'utente che deve contenere prima un campo di tipo long che specificherà il tipo del messaggio, e poi una parte di dati che conterrà i dati int byte del messaggio. La struttura seguente è un esempio di come potrebbe essere questo buffer definito dall'utente:

struct mymsg {
    long int mtype; /* message type */
    char mtext[1];  /* message text */
}

Il membro della struttura mtype è il tipo di messaggio ricevuto come specificato dal processo di invio. Il membro della struttura mtext è il testo del messaggio.

L'argomento msgsz specifica la dimensione in byte del testo del messaggio ricevuto. Il messaggio ricevuto viene troncato a msgsz byte se è più grande di msgsz e (msgflg & MSG_NOERROR) è diverso da zero. La parte troncata del messaggio viene persa e non viene data alcuna indicazione della troncatura al processo chiamante.

Se il valore di msgsz è maggiore di {SSIZE_MAX}, il risultato dipende dall'implementazione.

L'argomento msgtyp specifica il tipo di messaggio richiesto come segue:

  • Se msgtyp è 0, viene ricevuto il primo messaggio nella coda.
  • Se msgtyp è maggiore di 0, viene ricevuto il primo messaggio di tipo msgtyp.
  • Se msgtyp è minore di 0, viene ricevuto il primo messaggio del tipo più basso che è minore o uguale al valore assoluto di msgtyp.

L'argomento msgflg specifica l'azione da intraprendere se un messaggio del tipo desiderato non è nella coda. Queste sono le seguenti:

Anteprima
Vedrai una selezione di 1 pagina su 3
Sistemi operativi - Syscall msgrcv Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher N. A. di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Cotroneo Domenico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community