\chapter{I segnali}
-\label{sec:signals}
+\label{cha:signals}
I segnali sono il primo e più semplice meccanismo di comunicazione nei
confronti dei processi. Non portano con se nessuna informazione che non sia il
-
-
\subsubsection{Tipi di segnali}
\label{sec:sig_types}
\item \texttt{SIGABRT} Il segnale indica che il programma stesso ha rilevato
un errore che viene riportato chiamando la funzione \texttt{abort} che
genera questo segnale.
-\item \texttt{SIGTRAP}
+\item \texttt{SIGTRAP} È il segnale generato da un'istruzione di breakpoint o
+ dall'attivazione del tracciamento per il processo. È usato dai programmi per
+ il debugging e se un programma normale non dovrebbe ricevere questo segnale.
\item \texttt{SIGSYS} Sta ad indicare che si è eseguta una istruzione che
richiede l'esecuzione di una system call, ma si è fornito un codice
sbagliato per quest'ultima.
L'azione di default di questi segnali è di terminare il processo, questi
segnali sono:
\begin{description}
-\item \texttt{SIGTERM}
-\item \texttt{SIGINT}
-\item \texttt{SIGQUIT}
-\item \texttt{SIGKILL}
-\item \texttt{SIGHUP}
+\item \macro{SIGTERM} Questo è un segnale generico usato per causare la
+ conclusione di un programma. Al contrario di \macro{SIGKILL} può essere
+ intercettato, ignorato, bloccato. In genere lo si usa per chiedere in
+ maniera ``educata'' ad un processo di concludersi.
+\item \macro{SIGINT} E il segnale di interruzione per il programma. È quello
+ che viene generato di default dal comando \cmd{kill} o dall'invio sul
+ terminale del carattere di interrupt (generato dalla sequenza \macro{C-\\}).
+\item \macro{SIGQUIT}
+\item \macro{SIGKILL}
+\item \macro{SIGHUP}
\end{description}
\subsection{I segnali di allarme}
Il numero di segnale passato in \param{signum} segnale può essere indicato
direttamente con una delle costanti definite in \secref{sec:sig_standard}, il
manipolatore \param{handler} invece, oltre all'indirizzo della funzione da
-chiamare all'occorrenza del segnale, può assumere i valori costanti
-\macro{SIG\_IGN} per ignorare il segnale e \macro{SIG\_DFL} per installare
-l'azione di di default (si ricordi però che \macro{SIGKILL} e \macro{SIGSTOP}
-non possono essere ignorati né intercettati).
+chiamare all'occorrenza del segnale, può assumere anche i valori costanti
+\macro{SIG\_IGN} con cui si dice ignorare il segnale e \macro{SIG\_DFL} per
+installare l'azione di di default (si ricordi però che i due segnali
+\macro{SIGKILL} e \macro{SIGSTOP} non possono essere ignorati né
+intercettati).
+\subsection{Funzioni rientranti e default dei segnali}
+\label{sec:sig_reentrant}