X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=ipc.tex;h=916a27c58855851a26021e1cdb749a1844ce22b1;hp=d0cf5ce86b4d33de1cda5cd415e70dc739aeed32;hb=e78df96969205834b53a79526e918fa4e4c6dff4;hpb=d46eeb13b774782fc2d9a7e59f1961197931a95a diff --git a/ipc.tex b/ipc.tex index d0cf5ce..916a27c 100644 --- a/ipc.tex +++ b/ipc.tex @@ -1535,12 +1535,12 @@ interrotta da un segnale (nel qual caso si ha un errore di \macro{EINTR}). Una volta completato con successo l'invio del messaggio sulla coda, la funzione aggiorna i dati mantenuti in \var{msqid\_ds}, in particolare vengono modificati: -\begin{itemize} +\begin{itemize*} \item Il valore di \var{msg\_lspid}, che viene impostato al \acr{pid} del processo chiamante. \item Il valore di \var{msg\_qnum}, che viene incrementato di uno. \item Il valore \var{msg\_stime}, che viene impostato al tempo corrente. -\end{itemize} +\end{itemize*} La funzione che permette di estrarre da una coda un messaggio (che sarà @@ -1590,7 +1590,7 @@ una scansione della struttura mostrata in \figref{fig:ipc_mq_schema}, restituendo il primo messaggio incontrato che corrisponde ai criteri specificati (che quindi, visto che i messaggi vengono sempre inseriti dalla coda, è quello meno recente); in particolare: -\begin{itemize} +\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 @@ -1599,7 +1599,7 @@ coda, \item se \param{msgtyp} è negativo viene estratto il primo fra i messaggi con il tipo di valore più basso, fra tutti quelli con un tipo inferiore al valore assoluto di \param{msgtyp}. -\end{itemize} +\end{itemize*} Il valore di \param{msgflg} permette di controllare il comportamento della funzione, esso può essere nullo o una maschera binaria composta da uno o più @@ -1621,12 +1621,12 @@ segnale (con \var{errno} impostata a \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: -\begin{itemize} +\begin{itemize*} \item Il valore di \var{msg\_lrpid}, che viene impostato al \acr{pid} del processo chiamante. \item Il valore di \var{msg\_qnum}, che viene decrementato di uno. \item Il valore \var{msg\_rtime}, che viene impostato al tempo corrente. -\end{itemize} +\end{itemize*} Come esempio dell'uso delle code di messaggi possiamo riscrivere il nostro server di \textit{fortunes} usando queste al posto delle fifo. In questo caso @@ -1934,6 +1934,29 @@ in attesa su di esso reagiscono di conseguenza al cambiamento di valore. Inoltre la coda delle operazioni di ripristino viene cancellata per tutti i semafori il cui valore viene modificato. +\begin{table}[htb] + \footnotesize + \centering + \begin{tabular}[c]{|c|p{8cm}|} + \hline + \textbf{Operazione} & \textbf{Valore restituito} \\ + \hline + \hline + \macro{GETNCNT}& valore di \var{semncnt}.\\ + \macro{GETPID} & valore di \var{sempid}.\\ + \macro{GETVAL} & valore di \var{semval}.\\ + \macro{GETZCNT}& valore di \var{semzcnt}.\\ + \hline + \end{tabular} + \caption{Valori di ritorno della funzione \func{semctl}.} + \label{tab:ipc_semctl_returns} +\end{table} + +Il valore di ritorno della funzione in caso di successo dipende +dall'operazione richiesta; in generale esso è nullo, a meno che non si sia +specificata una delle operazioni riportate in +\tabref{tab:ipc_semctl_returns}, nel qual caso viene restituito il +corrispondente campo della struttura \var{sem}. \begin{figure}[!htb]