Un po' di aggiunte sui signal set
[gapil.git] / signal.tex
index 3784e17d2db656863ece8eefae69096f810d5277..11c97f7af7c947e38e18d8faec3437bf2d59cebf 100644 (file)
@@ -957,6 +957,9 @@ la funzione \func{kill}; il cui prototipo 
   \headdecl{signal.h}
   \funcdecl{int kill(pid\_t pid, int sig)} Invia il segnale \param{sig} al
   processo specificato con \param{pid}.
+
+  La funzione restituisce 0 in caso di successo e -1 in caso di errore nel
+  qual caso \func{}
 \end{functions}
 
 Lo standard POSIX prevede che il valore 0 per \param{sig} sia usato per
@@ -1628,7 +1631,43 @@ gestire correttamente i segnali pendenti e bloccati.
 Per questo motivo lo standard POSIX, insieme alla nuova semantica dei segnali
 ha introdotto una interfaccia di gestione completamente nuova, che permette un
 controllo molto più dettagliato. In particolare lo standard ha introdotto un
-nuovo tipo di dato \type{sigset\_t}.
+nuovo tipo di dato \type{sigset\_t}, che permette di rappresentare un insieme
+di segnali (un \textit{signal set} appunto), in modo da poterlo opportunamente
+manipolare.
+
+In genere il \textit{signal set} è rappresentato da un intero di dimensione
+opportuna (di solito pari al numero di bit dell'architettura della macchina,
+cosa che nel caso dei PC comporta un massimo di 32 segnali distinti), ciascun
+bit del quale è associato ad uno specifico segnale; lo standard POSIX
+definisce cinque funzioni per la manipolazione dei \textit{signal set},
+\func{sigemptyset}, \func{sigfillset}, \func{sigaddset}, \func{sigdelset} e
+\func{sigismember}; i relativi prototipi sono:
+\begin{functions}
+  \headdecl{signal.h} 
+
+  \funcdecl{int sigemptyset(sigset\_t *set)} Inizializza un \textit{signal set}
+  vuoto.
+  \funcdecl{int sigfillset(sigset\_t *set)} Inizializza un \textit{signal set}
+  pieno (con tutti i segnali).
+  
+  \funcdecl{int sigaddset(sigset\_t *set, int signum)} Aggiunge il segnale
+  \param{signum} al  \textit{signal set} \param{set}.
+
+  \funcdecl{int sigdelset(sigset\_t *set, int signum)} Toglie il segnale
+  \param{signum} dal \textit{signal set} \param{set}.
+  
+  \funcdecl{int sigismember(const sigset\_t *set, int signum)} Controlla se il
+  segnale \param{signum} è nel \textit{signal set} \param{set}
+  
+  \bodydesc{Le funzioni prime quattro funzioni ritornano 0, \func{sigismember}
+    ritorna 1 se \param{signum} è in \param{set} e 0 altrimenti, in caso di
+    errore, dovuto al fatto che \param{signum} non è un segnale valido, tutte
+    ritornano -1, con \var{errno} settata a \macro{EINVAL}.}
+\end{functions}
+
+
+
 
 \subsection{La funzione \func{sigaction}}
 \label{sec:sig_sigaction}