+La funzione permette di estrarre un messaggio dalla coda e di scriverlo nel
+buffer indicato da \param{msgp}, che deve puntare ad una struttura della forma
+mostrata in \figref{fig:ipc_msbug}. L'argomento \param{msgsz} indica la
+lunghezza massima del testo del messaggio (equivalente al valore del parametro
+\macro{LENGHT} nell'esempio di \figref{fig:ipc_msbug}).
+
+Se il testo del messaggio ha lunghezza inferiore a \param{msgsz} esso viene
+rimosso dalla coda, in caso contrario se \param{msgflg} è impostato a
+\macro{MSG\_NOERROR} il messaggio viene troncato e la parte in eccesso viene
+perduta, altrimenti il messaggio non viene estratto e la funzione ritorna con
+un errore di \macro{E2BIG}.
+
+L'argomento \param{msgtyp} permette di restringere la ricerca ad un
+sottoinsieme dei messaggi presenti sulla coda; in particolare:
+\begin{itemize}
+\item se \param{msgtyp} è 0 viene estratto il messaggio in cima alla coda, cioè
+ quello fra i presenti che è stato inserito inserito per primo.
+\item se \param{msgtyp} è positivo viene estratto il primo messaggio il cui
+ tipo (il valore del campo \var{mtype}) corrisponde a quanto specificato.
+\item se \param{msgtyp} è negativo viene estratto il primo messaggio nella coda
+ con il tipo più basso, fra quelli di tipo inferiore al valore assoluto di
+ quanto specificato.
+\end{itemize}
+
+Il valore di \param{msgflg} permette di controllare il comportamento della
+funzione, esso può assumere valore nullo o essere specificato come maschera
+binaria di uno o più dei valori. Oltre al precedente \macro{MSG\_NOERROR}, si
+può impostare il valore \macro{MSG\_EXCEPT}, che quando \param{msgtyp} è
+positivo permette di leggere il primo messaggio nella coda con tipo diverso da
+\param{msgtyp}, ed il valore \macro{IPC\_NOWAIT} che causa il ritorno
+immediato della funzione quando non ci sono messaggi sulla coda.
+
+Il comportamento usuale della funzione infatti, quando non ci sono messaggi
+disponibili per la lettura, è di bloccare il processo in stato di
+\textit{sleep}; nel caso però si sia specificato \macro{IPC\_NOWAIT} la
+funzione ritorna immediatamente con un errore \macro{ENOMSG}. Altrimenti la
+funzione ritorna normalmente non appena viene inserito un messaggio del tipo
+desiderato, oppure ritorna con errore qualora la cosa sia rimossa (con un
+\macro{EIDRM}) o se il processo viene interrotto da un segnale (con un
+\macro{EINTR}).
+
+Una volta completata con successo l'estrazione del messaggio dalla coda, la
+funzione aggiorna i dati mantenuti in \var{msqid\_ds}, in particolare vengono
+modificati: