Sistemata la parte della allocazione della memoria, le variadic
[gapil.git] / signal.tex
index 8caa480f61985e474918750f1c9462e3ec4c67c4..b4e869f818714f40360ff416284cad7b27ca10e0 100644 (file)
@@ -230,7 +230,7 @@ i segnali successivi alla nuova specificazione saranno notificati).
 
 Una volta che un segnale viene notificato (che questo avvenga subito o dopo
 una attesa più o meno lunga) viene eseguita l'azione specificata per il
-segnale. Per alcuni segnali (\const{SIGKILL} e \const{SIGSTOP}) questa azione
+segnale. Per alcuni segnali (\signal{SIGKILL} e \signal{SIGSTOP}) questa azione
 è fissa e non può essere cambiata, ma per tutti gli altri si può selezionare
 una  delle tre possibilità seguenti:
 
@@ -360,51 +360,51 @@ al momento della ricezione del segnale.
     \textbf{Segnale} &\textbf{Standard}&\textbf{Azione}&\textbf{Descrizione} \\
     \hline
     \hline
-    \const{SIGHUP}   &PL & A & Hangup o terminazione del processo di 
+    \signal{SIGHUP}  &PL & A & Hangup o terminazione del processo di 
                                controllo.                                    \\
-    \const{SIGINT}   &PL & A & Interrupt da tastiera (\cmd{C-c}).            \\
-    \const{SIGQUIT}  &PL & C & Quit da tastiera (\cmd{C-y}).                 \\
-    \const{SIGILL}   &PL & C & Istruzione illecita.                          \\
-    \const{SIGABRT}  &PL & C & Segnale di abort da \func{abort}.             \\
-    \const{SIGFPE}   &PL & C & Errore aritmetico.                            \\
-    \const{SIGKILL}  &PL &AEF& Segnale di terminazione forzata.              \\
-    \const{SIGSEGV}  &PL & C & Errore di accesso in memoria.                 \\
-    \const{SIGPIPE}  &PL & A & Pipe spezzata.                                \\
-    \const{SIGALRM}  &PL & A & Segnale del timer da \func{alarm}.            \\
-    \const{SIGTERM}  &PL & A & Segnale di terminazione \texttt{C-\bslash}.   \\
-    \const{SIGUSR1}  &PL & A & Segnale utente numero 1.                      \\
-    \const{SIGUSR2}  &PL & A & Segnale utente numero 2.                      \\
-    \const{SIGCHLD}  &PL & B & Figlio terminato o fermato.                   \\
-    \const{SIGCONT}  &PL &   & Continua se fermato.                          \\
-    \const{SIGSTOP}  &PL &DEF& Ferma il processo.                            \\
-    \const{SIGTSTP}  &PL & D & Pressione del tasto di stop sul terminale.    \\
-    \const{SIGTTIN}  &PL & D & Input sul terminale per un processo 
+    \signal{SIGINT}  &PL & A & Interrupt da tastiera (\cmd{C-c}).            \\
+    \signal{SIGQUIT} &PL & C & Quit da tastiera (\cmd{C-y}).                 \\
+    \signal{SIGILL}  &PL & C & Istruzione illecita.                          \\
+    \signal{SIGABRT} &PL & C & Segnale di abort da \func{abort}.             \\
+    \signal{SIGFPE}  &PL & C & Errore aritmetico.                            \\
+    \signal{SIGKILL} &PL &AEF& Segnale di terminazione forzata.              \\
+    \signal{SIGSEGV} &PL & C & Errore di accesso in memoria.                 \\
+    \signal{SIGPIPE} &PL & A & Pipe spezzata.                                \\
+    \signal{SIGALRM} &PL & A & Segnale del timer da \func{alarm}.            \\
+    \signal{SIGTERM} &PL & A & Segnale di terminazione \texttt{C-\bslash}.   \\
+    \signal{SIGUSR1} &PL & A & Segnale utente numero 1.                      \\
+    \signal{SIGUSR2} &PL & A & Segnale utente numero 2.                      \\
+    \signal{SIGCHLD} &PL & B & Figlio terminato o fermato.                   \\
+    \signal{SIGCONT} &PL &   & Continua se fermato.                          \\
+    \signal{SIGSTOP} &PL &DEF& Ferma il processo.                            \\
+    \signal{SIGTSTP} &PL & D & Pressione del tasto di stop sul terminale.    \\
+    \signal{SIGTTIN} &PL & D & Input sul terminale per un processo 
                                in background.                                \\
-    \const{SIGTTOU}  &PL & D & Output sul terminale per un processo          
+    \signal{SIGTTOU} &PL & D & Output sul terminale per un processo          
                                in background.                                \\
-    \const{SIGBUS}   &SL & C & Errore sul bus (bad memory access).           \\
-    \const{SIGPOLL}  &SL & A & \textit{Pollable event} (Sys V);  
-                               Sinonimo di \const{SIGIO}.                    \\
-    \const{SIGPROF}  &SL & A & Timer del profiling scaduto.                  \\
-    \const{SIGSYS}   &SL & C & Argomento sbagliato per una subroutine (SVID).\\
-    \const{SIGTRAP}  &SL & C & Trappole per un Trace/breakpoint.             \\
-    \const{SIGURG}   &SLB& B & Ricezione di una \textit{urgent condition} su 
+    \signal{SIGBUS}  &SL & C & Errore sul bus (bad memory access).           \\
+    \signal{SIGPOLL} &SL & A & \textit{Pollable event} (Sys V);  
+                               Sinonimo di \signal{SIGIO}.                   \\
+    \signal{SIGPROF} &SL & A & Timer del profiling scaduto.                  \\
+    \signal{SIGSYS}  &SL & C & Argomento sbagliato per una subroutine (SVID).\\
+    \signal{SIGTRAP} &SL & C & Trappole per un Trace/breakpoint.             \\
+    \signal{SIGURG}  &SLB& B & Ricezione di una \textit{urgent condition} su 
                                un socket. \\
-    \const{SIGVTALRM}&SLB& A & Timer di esecuzione scaduto.                  \\
-    \const{SIGXCPU}  &SLB& C & Ecceduto il limite sul tempo di CPU.          \\
-    \const{SIGXFSZ}  &SLB& C & Ecceduto il limite sulla dimensione dei file. \\
-    \const{SIGIOT}   &L  & C & IOT trap. Sinonimo di \const{SIGABRT}.        \\
-    \const{SIGEMT}   &L  &   &                                               \\
+    \signal{SIGVTALRM}&SLB& A & Timer di esecuzione scaduto.                 \\
+    \signal{SIGXCPU}  &SLB& C & Ecceduto il limite sul tempo di CPU.         \\
+    \signal{SIGXFSZ}  &SLB& C & Ecceduto il limite sulla dimensione dei file.\\
+    \signal{SIGIOT}   &L  & C & IOT trap. Sinonimo di \signal{SIGABRT}.      \\
+    \signal{SIGEMT}   &L  &   &                                              \\
 % TODO che roba e` SIGEMT
-    \const{SIGSTKFLT}&L  & A & Errore sullo stack del coprocessore.          \\
-    \const{SIGIO}    &LB & A & L'I/O è possibile (4.2 BSD).                  \\
-    \const{SIGCLD}   &L  &   & Sinonimo di \const{SIGCHLD}.                  \\
-    \const{SIGPWR}   &L  & A & Fallimento dell'alimentazione.                \\
-    \const{SIGINFO}  &L  &   & Sinonimo di \const{SIGPWR}.                   \\
-    \const{SIGLOST}  &L  & A & Perso un lock sul file (per NFS).             \\
-    \const{SIGWINCH} &LB & B & Finestra ridimensionata (4.3 BSD, Sun).       \\
-    \const{SIGUNUSED}&L  & A & Segnale inutilizzato (diventerà 
-                               \const{SIGSYS}).                              \\
+    \signal{SIGSTKFLT}&L  & A & Errore sullo stack del coprocessore.         \\
+    \signal{SIGIO}    &LB & A & L'I/O è possibile (4.2 BSD).                 \\
+    \signal{SIGCLD}   &L  &   & Sinonimo di \signal{SIGCHLD}.                \\
+    \signal{SIGPWR}   &L  & A & Fallimento dell'alimentazione.               \\
+    \signal{SIGINFO}  &L  &   & Sinonimo di \signal{SIGPWR}.                 \\
+    \signal{SIGLOST}  &L  & A & Perso un lock sul file (per NFS).            \\
+    \signal{SIGWINCH} &LB & B & Finestra ridimensionata (4.3 BSD, Sun).      \\
+    \signal{SIGUNUSED}&L  & A & Segnale inutilizzato (diventerà 
+                               \signal{SIGSYS}).                             \\
     \hline
   \end{tabular}
   \caption{Lista dei segnali in Linux.}
@@ -440,7 +440,7 @@ che viene scritto in un file \file{core} nella directory corrente del processo
 al momento dell'errore, che il debugger può usare per ricostruire lo stato del
 programma al momento della terminazione.  Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGFPE}] Riporta un errore aritmetico fatale. Benché il nome
+\item[\signal{SIGFPE}] Riporta un errore aritmetico fatale. Benché il nome
   derivi da \textit{floating point exception} si applica a tutti gli errori
   aritmetici compresa la divisione per zero e l'overflow.  Se il gestore
   ritorna il comportamento del processo è indefinito, ed ignorare questo
@@ -452,7 +452,7 @@ programma al momento della terminazione.  Questi segnali sono:
 %   aritmetiche e richiede che esse siano notificate.
 % TODO trovare altre info su SIGFPE e trattare la notifica delle eccezioni 
   
-\item[\const{SIGILL}] Il nome deriva da \textit{illegal instruction},
+\item[\signal{SIGILL}] Il nome deriva da \textit{illegal instruction},
   significa che il programma sta cercando di eseguire una istruzione
   privilegiata o inesistente, in generale del codice illecito. Poiché il
   compilatore del C genera del codice valido si ottiene questo segnale se il
@@ -463,7 +463,7 @@ programma al momento della terminazione.  Questi segnali sono:
   \textit{stack}. Lo stesso segnale viene generato in caso di overflow dello
   \itindex{stack} \textit{stack} o di problemi nell'esecuzione di un gestore.
   Se il gestore ritorna il comportamento del processo è indefinito.
-\item[\const{SIGSEGV}] Il nome deriva da \itindex{segment~violation}
+\item[\signal{SIGSEGV}] Il nome deriva da \itindex{segment~violation}
   \textit{segment violation}, e significa che il programma sta cercando di
   leggere o scrivere in una zona di memoria protetta al di fuori di quella che
   gli è stata riservata dal sistema. In genere è il meccanismo della
@@ -472,20 +472,20 @@ programma al momento della terminazione.  Questi segnali sono:
 
   È tipico ottenere questo segnale dereferenziando un puntatore nullo o non
   inizializzato leggendo al di là della fine di un vettore. 
-\item[\const{SIGBUS}] Il nome deriva da \textit{bus error}. Come
-  \const{SIGSEGV} questo è un segnale che viene generato di solito quando si
+\item[\signal{SIGBUS}] Il nome deriva da \textit{bus error}. Come
+  \signal{SIGSEGV} questo è un segnale che viene generato di solito quando si
   dereferenzia un puntatore non inizializzato, la differenza è che
-  \const{SIGSEGV} indica un accesso non permesso su un indirizzo esistente
+  \signal{SIGSEGV} indica un accesso non permesso su un indirizzo esistente
   (tipo fuori dallo heap o dallo \itindex{stack} \textit{stack}), mentre
-  \const{SIGBUS} indica l'accesso ad un indirizzo non valido, come nel caso di
+  \signal{SIGBUS} indica l'accesso ad un indirizzo non valido, come nel caso di
   un puntatore non allineato.
-\item[\const{SIGABRT}] Il nome deriva da \textit{abort}. Il segnale indica che
+\item[\signal{SIGABRT}] Il nome deriva da \textit{abort}. Il segnale indica che
   il programma stesso ha rilevato un errore che viene riportato chiamando la
   funzione \func{abort} che genera questo segnale.
-\item[\const{SIGTRAP}] È il segnale generato da un'istruzione di breakpoint o
+\item[\signal{SIGTRAP}] È il segnale generato da un'istruzione di breakpoint o
   dall'attivazione del tracciamento per il processo. È usato dai programmi per
   il debugging e un programma normale non dovrebbe ricevere questo segnale.
-\item[\const{SIGSYS}] Sta ad indicare che si è eseguita una istruzione che
+\item[\signal{SIGSYS}] Sta ad indicare che si è eseguita una istruzione che
   richiede l'esecuzione di una system call, ma si è fornito un codice
   sbagliato per quest'ultima.
 \end{basedescript}
@@ -508,18 +508,18 @@ periferica).
 L'azione predefinita di questi segnali è di terminare il processo, questi
 segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGTERM}] Il nome sta per \textit{terminate}. È un segnale
+\item[\signal{SIGTERM}] Il nome sta per \textit{terminate}. È un segnale
   generico usato per causare la conclusione di un programma. Al contrario di
-  \const{SIGKILL} può essere intercettato, ignorato, bloccato. In genere lo si
+  \signal{SIGKILL} può essere intercettato, ignorato, bloccato. In genere lo si
   usa per chiedere in maniera ``\textsl{educata}'' ad un processo di
   concludersi.
 
-\item[\const{SIGINT}] Il nome sta per \textit{interrupt}. È il segnale di
+\item[\signal{SIGINT}] Il nome sta per \textit{interrupt}. È 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 controllo
   INTR (interrupt, generato dalla sequenza \cmd{C-c}).
 
-\item[\const{SIGQUIT}] È analogo a \const{SIGINT} con la differenza che è
+\item[\signal{SIGQUIT}] È analogo a \signal{SIGINT} con la differenza che è
   controllato da un altro carattere di controllo, QUIT, corrispondente alla
   sequenza \texttt{C-\bslash}. A differenza del precedente l'azione
   predefinita, oltre alla terminazione del processo, comporta anche la
@@ -533,22 +533,22 @@ segnali sono:
   \textit{core dump}.
   
 
-\item[\const{SIGKILL}] Il nome è utilizzato per terminare in maniera immediata
+\item[\signal{SIGKILL}] Il nome è utilizzato per terminare in maniera immediata
   qualunque programma. Questo segnale non può essere né intercettato, né
   ignorato, né bloccato, per cui causa comunque la terminazione del processo.
   In genere esso viene generato solo per richiesta esplicita dell'utente dal
   comando (o tramite la funzione) \cmd{kill}. Dato che non lo si può
   intercettare è sempre meglio usarlo come ultima risorsa quando metodi meno
-  brutali, come \const{SIGTERM} o \cmd{C-c} non funzionano. 
+  brutali, come \signal{SIGTERM} o \cmd{C-c} non funzionano. 
 
-  Se un processo non risponde a nessun altro segnale \const{SIGKILL} ne causa
+  Se un processo non risponde a nessun altro segnale \signal{SIGKILL} ne causa
   sempre la terminazione (in effetti il fallimento della terminazione di un
-  processo da parte di \const{SIGKILL} costituirebbe un malfunzionamento del
+  processo da parte di \signal{SIGKILL} costituirebbe un malfunzionamento del
   kernel). Talvolta è il sistema stesso che può generare questo segnale quando
   per condizioni particolari il processo non può più essere eseguito neanche
   per eseguire un gestore.
 
-\item[\const{SIGHUP}] Il nome sta per \textit{hang-up}. Segnala che il
+\item[\signal{SIGHUP}] Il nome sta per \textit{hang-up}. Segnala che il
   terminale dell'utente si è disconnesso (ad esempio perché si è interrotta la
   rete). Viene usato anche per riportare la terminazione del processo di
   controllo di un terminale a tutti i processi della sessione, in modo che
@@ -569,7 +569,7 @@ causare la terminazione del programma, ma con questi segnali la scelta
 predefinita è irrilevante, in quanto il loro uso presuppone sempre la
 necessità di un gestore.  Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGALRM}] Il nome sta per \textit{alarm}. Segnale la scadenza di
+\item[\signal{SIGALRM}] Il nome sta per \textit{alarm}. Segnale la scadenza di
   un timer misurato sul tempo reale o sull'orologio di sistema. È normalmente
   usato dalla funzione \func{alarm}.
 
@@ -577,7 +577,7 @@ necessità di un gestore.  Questi segnali sono:
   precedente ma segnala la scadenza di un timer sul tempo di CPU usato dal
   processo. 
 
-\item[\const{SIGPROF}] Il nome sta per \textit{profiling}. Indica la scadenza
+\item[\signal{SIGPROF}] Il nome sta per \textit{profiling}. Indica la scadenza
   di un timer che misura sia il tempo di CPU speso direttamente dal processo
   che quello che il sistema ha speso per conto di quest'ultimo. In genere
   viene usato dagli strumenti che servono a fare la profilazione dell'utilizzo
@@ -593,18 +593,18 @@ questo occorre comunque usare \func{fcntl} per abilitare un file descriptor a
 generare questi segnali.  L'azione predefinita è di essere ignorati. Questi
 segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGIO}] Questo segnale viene inviato quando un file descriptor è
+\item[\signal{SIGIO}] Questo segnale viene inviato quando un file descriptor è
   pronto per eseguire dell'input/output. In molti sistemi solo i
   socket e i terminali possono generare questo segnale, in Linux
   questo può essere usato anche per i file, posto che la \func{fcntl} abbia
   avuto successo.
 
-\item[\const{SIGURG}] Questo segnale è inviato quando arrivano dei dati
+\item[\signal{SIGURG}] Questo segnale è inviato quando arrivano dei dati
   urgenti o \itindex{out-of-band} \textit{out-of-band} su di un
   socket; per maggiori dettagli al proposito si veda
   sez.~\ref{sec:TCP_urgent_data}.
 
-\item[\const{SIGPOLL}] Questo segnale è equivalente a \const{SIGIO}, è
+\item[\signal{SIGPOLL}] Questo segnale è equivalente a \signal{SIGIO}, è
   definito solo per compatibilità con i sistemi System V.
 \end{basedescript}
 
@@ -616,16 +616,16 @@ Questi sono i segnali usati dal controllo delle sessioni e dei processi, il
 loro uso è specializzato e viene trattato in maniera specifica nelle sezioni
 in cui si trattano gli argomenti relativi.  Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGCHLD}] Questo è il segnale mandato al processo padre quando un
+\item[\signal{SIGCHLD}] Questo è il segnale mandato al processo padre quando un
   figlio termina o viene fermato. L'azione predefinita è di ignorare il
   segnale, la sua gestione è trattata in sez.~\ref{sec:proc_wait}.
 
-\item[\const{SIGCLD}] Per Linux questo è solo un segnale identico al
+\item[\signal{SIGCLD}] Per Linux questo è solo un segnale identico al
   precedente, il nome è obsoleto e andrebbe evitato. 
 
-\item[\const{SIGCONT}] Il nome sta per \textit{continue}. Il segnale viene
+\item[\signal{SIGCONT}] Il nome sta per \textit{continue}. Il segnale viene
   usato per fare ripartire un programma precedentemente fermato da
-  \const{SIGSTOP}. Questo segnale ha un comportamento speciale, e fa sempre
+  \signal{SIGSTOP}. Questo segnale ha un comportamento speciale, e fa sempre
   ripartire il processo prima della sua consegna. Il comportamento predefinito
   è di fare solo questo; il segnale non può essere bloccato. Si può anche
   installare un gestore, ma il segnale provoca comunque il riavvio del
@@ -637,27 +637,27 @@ in cui si trattano gli argomenti relativi.  Questi segnali sono:
   gestori per far si che un programma produca una qualche azione speciale
   se viene fermato e riavviato, come per esempio riscrivere un prompt, o
   inviare un avviso. 
-\item[\const{SIGSTOP}] Il segnale ferma un processo (lo porta cioè in uno
+\item[\signal{SIGSTOP}] Il segnale ferma un processo (lo porta cioè in uno
   stato di sleep, vedi sez.~\ref{sec:proc_sched}); il segnale non può essere né
   intercettato, né ignorato, né bloccato.
 
-\item[\const{SIGTSTP}] Il nome sta per \textit{interactive stop}. Il segnale
+\item[\signal{SIGTSTP}] Il nome sta per \textit{interactive stop}. Il segnale
   ferma il processo interattivamente, ed è generato dal carattere SUSP
   (prodotto dalla combinazione \cmd{C-z}), ed al contrario di
-  \const{SIGSTOP} può essere intercettato e ignorato. In genere un programma
+  \signal{SIGSTOP} può essere intercettato e ignorato. In genere un programma
   installa un gestore per questo segnale quando vuole lasciare il sistema
   o il terminale in uno stato definito prima di fermarsi; se per esempio un
   programma ha disabilitato l'eco sul terminale può installare un gestore
   per riabilitarlo prima di fermarsi.
 
-\item[\const{SIGTTIN}] Un processo non può leggere dal terminale se esegue una
+\item[\signal{SIGTTIN}] Un processo non può leggere dal terminale se esegue una
   sessione di lavoro in \textit{background}. Quando un processo in background
   tenta di leggere da un terminale viene inviato questo segnale a tutti i
   processi della sessione di lavoro. L'azione predefinita è di fermare il
   processo.  L'argomento è trattato in
   sez.~\ref{sec:sess_job_control_overview}.
 
-\item[\const{SIGTTOU}] Segnale analogo al precedente \const{SIGTTIN}, ma
+\item[\signal{SIGTTOU}] Segnale analogo al precedente \signal{SIGTTIN}, ma
   generato quando si tenta di scrivere o modificare uno dei modi del
   terminale. L'azione predefinita è di fermare il processo, l'argomento è
   trattato in sez.~\ref{sec:sess_job_control_overview}.
@@ -673,23 +673,23 @@ che impediscono il completamento dell'esecuzione dovute all'interazione con il
 resto del sistema.  L'azione predefinita di questi segnali è di terminare il
 processo, questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGPIPE}] Sta per \textit{Broken pipe}. Se si usano delle pipe,
+\item[\signal{SIGPIPE}] Sta per \textit{Broken pipe}. Se si usano delle pipe,
   (o delle FIFO o dei socket) è necessario, prima che un processo inizi a
   scrivere su una di esse, che un altro l'abbia aperta in lettura (si veda
   sez.~\ref{sec:ipc_pipes}). Se il processo in lettura non è partito o è
   terminato inavvertitamente alla scrittura sulla pipe il kernel genera questo
   segnale. Se il segnale è bloccato, intercettato o ignorato la chiamata che
   lo ha causato fallisce, restituendo l'errore \errcode{EPIPE}.
-\item[\const{SIGLOST}] Sta per \textit{Resource lost}. Tradizionalmente è il
+\item[\signal{SIGLOST}] Sta per \textit{Resource lost}. Tradizionalmente è il
   segnale che viene generato quando si perde un advisory lock su un file su
   NFS perché il server NFS è stato riavviato. Il progetto GNU lo utilizza per
   indicare ad un client il crollo inaspettato di un server. In Linux è
-  definito come sinonimo di \const{SIGIO}.\footnote{ed è segnalato come BUG
+  definito come sinonimo di \signal{SIGIO}.\footnote{ed è segnalato come BUG
     nella pagina di manuale.}
-\item[\const{SIGXCPU}] Sta per \textit{CPU time limit exceeded}. Questo
+\item[\signal{SIGXCPU}] Sta per \textit{CPU time limit exceeded}. Questo
   segnale è generato quando un processo eccede il limite impostato per il
   tempo di CPU disponibile, vedi sez.~\ref{sec:sys_resource_limit}. 
-\item[\const{SIGXFSZ}] Sta per \textit{File size limit exceeded}. Questo
+\item[\signal{SIGXFSZ}] Sta per \textit{File size limit exceeded}. Questo
   segnale è generato quando un processo tenta di estendere un file oltre le
   dimensioni specificate dal limite impostato per le dimensioni massime di un
   file, vedi sez.~\ref{sec:sys_resource_limit}. 
@@ -702,20 +702,20 @@ processo, questi segnali sono:
 Raccogliamo qui infine una serie di segnali che hanno scopi differenti non
 classificabili in maniera omogenea. Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{SIGUSR1}] Insieme a \const{SIGUSR2} è un segnale a disposizione
+\item[\signal{SIGUSR1}] Insieme a \signal{SIGUSR2} è un segnale a disposizione
   dell'utente che lo può usare per quello che vuole. Viene generato solo
   attraverso l'invocazione della funzione \func{kill}. Entrambi i segnali
   possono essere utili per implementare una comunicazione elementare fra
   processi diversi, o per eseguire a richiesta una operazione utilizzando un
   gestore. L'azione predefinita è di terminare il processo.
-\item[\const{SIGUSR2}] È il secondo segnale a disposizione degli utenti. Vedi
-  quanto appena detto per \const{SIGUSR1}.
-\item[\const{SIGWINCH}] Il nome sta per \textit{window (size) change} e viene
+\item[\signal{SIGUSR2}] È il secondo segnale a disposizione degli utenti. Vedi
+  quanto appena detto per \signal{SIGUSR1}.
+\item[\signal{SIGWINCH}] Il nome sta per \textit{window (size) change} e viene
   generato in molti sistemi (GNU/Linux compreso) quando le dimensioni (in
   righe e colonne) di un terminale vengono cambiate. Viene usato da alcuni
   programmi testuali per riformattare l'uscita su schermo quando si cambia
   dimensione a quest'ultimo. L'azione predefinita è di essere ignorato.
-\item[\const{SIGINFO}] Il segnale indica una richiesta di informazioni. È
+\item[\signal{SIGINFO}] Il segnale indica una richiesta di informazioni. È
   usato con il controllo di sessione, causa la stampa di informazioni da parte
   del processo leader del gruppo associato al terminale di controllo, gli
   altri processi lo ignorano.
@@ -802,7 +802,7 @@ che non sono presenti nello spazio di indirizzi del nuovo programma.
 Si noti che questo vale solo per le azioni per le quali è stato installato un
 gestore; viene mantenuto invece ogni eventuale impostazione dell'azione a
 \const{SIG\_IGN}. Questo permette ad esempio alla shell di impostare ad
-\const{SIG\_IGN} le risposte per \const{SIGINT} e \const{SIGQUIT} per i
+\const{SIG\_IGN} le risposte per \signal{SIGINT} e \signal{SIGQUIT} per i
 programmi eseguiti in background, che altrimenti sarebbero interrotti da una
 successiva pressione di \texttt{C-c} o \texttt{C-y}.
 
@@ -917,7 +917,7 @@ L'argomento \param{handler} che indica il gestore invece, oltre all'indirizzo
 della funzione da chiamare all'occorrenza del segnale, può assumere anche i
 due valori costanti \const{SIG\_IGN} e \const{SIG\_DFL}; il primo indica che
 il segnale deve essere ignorato,\footnote{si ricordi però che i due segnali
-  \const{SIGKILL} e \const{SIGSTOP} non possono essere né ignorati né
+  \signal{SIGKILL} e \signal{SIGSTOP} non possono essere né ignorati né
   intercettati; l'uso di \const{SIG\_IGN} per questi segnali non ha alcun
   effetto.} mentre il secondo ripristina l'azione predefinita.\footnote{e
   serve a tornare al comportamento di default quando non si intende più
@@ -952,8 +952,8 @@ processo \itindex{thread} multi-\textit{thread}, è da evitare; tutti i nuovi
 programmi dovrebbero usare \func{sigaction}.
 
 È da tenere presente che, seguendo lo standard POSIX, il comportamento di un
-processo che ignora i segnali \const{SIGFPE}, \const{SIGILL}, o
-\const{SIGSEGV} (qualora questi non originino da una chiamata ad una
+processo che ignora i segnali \signal{SIGFPE}, \signal{SIGILL}, o
+\signal{SIGSEGV} (qualora questi non originino da una chiamata ad una
 \func{kill} o ad una \func{raise}) è indefinito. Un gestore che ritorna da
 questi segnali può dare luogo ad un ciclo infinito.
 
@@ -1067,7 +1067,7 @@ Solo l'amministratore può inviare un segnale ad un processo qualunque, in
 tutti gli altri casi l'user-ID reale o l'user-ID effettivo del processo
 chiamante devono corrispondere all'user-ID reale o all'user-ID salvato della
 destinazione. Fa eccezione il caso in cui il segnale inviato sia
-\const{SIGCONT}, nel quale occorre che entrambi i processi appartengano alla
+\signal{SIGCONT}, nel quale occorre che entrambi i processi appartengano alla
 stessa sessione. Inoltre, dato il ruolo fondamentale che riveste nel sistema
 (si ricordi quanto visto in sez.~\ref{sec:sig_termination}), non è possibile
 inviare al processo 1 (cioè a \cmd{init}) segnali per i quali esso non abbia
@@ -1085,12 +1085,12 @@ segnale al processo che ha effettuato la chiamata.
 \label{sec:sig_alarm_abort}
 
 Un caso particolare di segnali generati a richiesta è quello che riguarda i
-vari segnali di temporizzazione e \const{SIGABRT}, per ciascuno di questi
+vari segnali di temporizzazione e \signal{SIGABRT}, per ciascuno di questi
 segnali sono previste funzioni specifiche che ne effettuino l'invio. La più
 comune delle funzioni usate per la temporizzazione è \funcd{alarm} il cui
 prototipo è:
 \begin{prototype}{unistd.h}{unsigned int alarm(unsigned int seconds)}
-  Predispone l'invio di \const{SIGALRM} dopo \param{seconds} secondi.
+  Predispone l'invio di \signal{SIGALRM} dopo \param{seconds} secondi.
   
   \bodydesc{La funzione restituisce il numero di secondi rimanenti ad un
     precedente allarme, o zero se non c'erano allarmi pendenti.}
@@ -1099,7 +1099,7 @@ prototipo è:
 La funzione fornisce un meccanismo che consente ad un processo di predisporre
 un'interruzione nel futuro, (ad esempio per effettuare una qualche operazione
 dopo un certo periodo di tempo), programmando l'emissione di un segnale (nel
-caso in questione \const{SIGALRM}) dopo il numero di secondi specificato da
+caso in questione \signal{SIGALRM}) dopo il numero di secondi specificato da
 \param{seconds}.
 
 Se si specifica per \param{seconds} un valore nullo non verrà inviato nessun
@@ -1118,15 +1118,15 @@ processo tre diversi timer:
 \begin{itemize*}
 \item un \textit{real-time timer} che calcola il tempo reale trascorso (che
   corrisponde al \textit{clock time}). La scadenza di questo timer provoca
-  l'emissione di \const{SIGALRM};
+  l'emissione di \signal{SIGALRM};
 \item un \textit{virtual timer} che calcola il tempo di processore usato dal
   processo in user space (che corrisponde all'\textit{user time}). La scadenza
-  di questo timer provoca l'emissione di \const{SIGVTALRM};
+  di questo timer provoca l'emissione di \signal{SIGVTALRM};
 \item un \textit{profiling timer} che calcola la somma dei tempi di processore
   utilizzati direttamente dal processo in user space, e dal kernel nelle
   system call ad esso relative (che corrisponde a quello che in
   sez.~\ref{sec:sys_unix_time} abbiamo chiamato \textit{CPU time}). La scadenza
-  di questo timer provoca l'emissione di \const{SIGPROF}.
+  di questo timer provoca l'emissione di \signal{SIGPROF}.
 \end{itemize*}
 
 Il timer usato da \func{alarm} è il \textit{clock time}, e corrisponde cioè al
@@ -1266,14 +1266,14 @@ valore corrente di un timer senza modificarlo, è possibile usare la funzione
 
 L'ultima funzione che permette l'invio diretto di un segnale è \funcd{abort},
 che, come accennato in sez.~\ref{sec:proc_termination}, permette di abortire
-l'esecuzione di un programma tramite l'invio di \const{SIGABRT}. Il suo
+l'esecuzione di un programma tramite l'invio di \signal{SIGABRT}. Il suo
 prototipo è:
 \begin{prototype}{stdlib.h}{void abort(void)}
   
   Abortisce il processo corrente.
   
   \bodydesc{La funzione non ritorna, il processo è terminato inviando il
-  segnale di \const{SIGABRT}.}
+  segnale di \signal{SIGABRT}.}
 \end{prototype}
 
 La differenza fra questa funzione e l'uso di \func{raise} è che anche se il
@@ -1342,10 +1342,10 @@ termine per l'attesa, e ricalcolare tutte le volte il numero di secondi da
 aspettare.
 
 In alcune implementazioni inoltre l'uso di \func{sleep} può avere conflitti
-con quello di \const{SIGALRM}, dato che la funzione può essere realizzata con
+con quello di \signal{SIGALRM}, dato che la funzione può essere realizzata con
 l'uso di \func{pause} e \func{alarm} (in maniera analoga all'esempio che
 vedremo in sez.~\ref{sec:sig_example}). In tal caso mescolare chiamata di
-\func{alarm} e \func{sleep} o modificare l'azione di \const{SIGALRM}, può
+\func{alarm} e \func{sleep} o modificare l'azione di \signal{SIGALRM}, può
 causare risultati indefiniti. Nel caso delle \acr{glibc} è stata usata una
 implementazione completamente indipendente e questi problemi non ci sono.
 
@@ -1366,7 +1366,7 @@ seguono quella di SUSv2 che prevede il seguente prototipo:
 \end{prototype}
 
 Anche questa funzione, a seconda delle implementazioni, può presentare
-problemi nell'interazione con \func{alarm} e \const{SIGALRM}. È pertanto
+problemi nell'interazione con \func{alarm} e \signal{SIGALRM}. È pertanto
 deprecata in favore della funzione \funcd{nanosleep}, definita dallo standard
 POSIX1.b, il cui prototipo è:
 \begin{prototype}{unistd.h}{int nanosleep(const struct timespec *req, struct
@@ -1387,7 +1387,7 @@ POSIX1.b, il cui prototipo è:
 Lo standard richiede che la funzione sia implementata in maniera del tutto
 indipendente da \func{alarm}\footnote{nel caso di Linux questo è fatto
   utilizzando direttamente il timer del kernel.} e sia utilizzabile senza
-interferenze con l'uso di \const{SIGALRM}. La funzione prende come argomenti
+interferenze con l'uso di \signal{SIGALRM}. La funzione prende come argomenti
 delle strutture di tipo \struct{timespec}, la cui definizione è riportata in
 fig.~\ref{fig:sys_timespec_struct}, che permette di specificare un tempo con
 una precisione fino al nanosecondo.
@@ -1432,29 +1432,29 @@ precisione disponibile sull'hardware della propria macchina.
 \label{sec:sig_sigchld}
 
 Un semplice esempio per illustrare il funzionamento di un gestore di segnale è
-quello della gestione di \const{SIGCHLD}. Abbiamo visto in
+quello della gestione di \signal{SIGCHLD}. Abbiamo visto in
 sez.~\ref{sec:proc_termination} che una delle azioni eseguite dal kernel alla
 conclusione di un processo è quella di inviare questo segnale al
 padre.\footnote{in realtà in SVr4 eredita la semantica di System V, in cui il
-  segnale si chiama \const{SIGCLD} e viene trattato in maniera speciale; in
+  segnale si chiama \signal{SIGCLD} e viene trattato in maniera speciale; in
   System V infatti se si imposta esplicitamente l'azione a \const{SIG\_IGN} il
   segnale non viene generato ed il sistema non genera \index{zombie} zombie
   (lo stato di terminazione viene scartato senza dover chiamare una
   \func{wait}).  L'azione predefinita è sempre quella di ignorare il segnale,
   ma non attiva questo comportamento. Linux, come BSD e POSIX, non supporta
-  questa semantica ed usa il nome di \const{SIGCLD} come sinonimo di
-  \const{SIGCHLD}.} In generale dunque, quando non interessa elaborare lo
+  questa semantica ed usa il nome di \signal{SIGCLD} come sinonimo di
+  \signal{SIGCHLD}.} In generale dunque, quando non interessa elaborare lo
 stato di uscita di un processo, si può completare la gestione della
-terminazione installando un gestore per \const{SIGCHLD} il cui unico compito
+terminazione installando un gestore per \signal{SIGCHLD} il cui unico compito
 sia quello di chiamare \func{waitpid} per completare la procedura di
 terminazione in modo da evitare la formazione di \index{zombie} zombie.
 
 In fig.~\ref{fig:sig_sigchld_handl} è mostrato il codice contenente una
-implementazione generica di una funzione di gestione per \const{SIGCHLD}, (che
+implementazione generica di una funzione di gestione per \signal{SIGCHLD}, (che
 si trova nei sorgenti allegati nel file \file{SigHand.c}); se ripetiamo i test
 di sez.~\ref{sec:proc_termination}, invocando \cmd{forktest} con l'opzione
 \cmd{-s} (che si limita ad effettuare l'installazione di questa funzione come
-gestore di \const{SIGCHLD}) potremo verificare che non si ha più la creazione
+gestore di \signal{SIGCHLD}) potremo verificare che non si ha più la creazione
 di \index{zombie} zombie.
 
 \begin{figure}[!htbp]
@@ -1464,7 +1464,7 @@ di \index{zombie} zombie.
   \end{minipage}
   \normalsize 
   \caption{Codice di una funzione generica di gestione per il segnale
-    \texttt{SIGCHLD}.}
+    \signal{SIGCHLD}.}
   \label{fig:sig_sigchld_handl}
 \end{figure}
 
@@ -1486,7 +1486,7 @@ generazione di ulteriori segnali dello stesso tipo. In questo caso normalmente
 i segnali successivi vengono ``\textsl{fusi}'' col primo ed al processo ne
 viene recapitato soltanto uno.
 
-Questo può essere un caso comune proprio con \const{SIGCHLD}, qualora capiti
+Questo può essere un caso comune proprio con \signal{SIGCHLD}, qualora capiti
 che molti processi figli terminino in rapida successione. Esso inoltre si
 presenta tutte le volte che un segnale viene bloccato: per quanti siano i
 segnali emessi durante il periodo di blocco, una volta che quest'ultimo sarà
@@ -1541,7 +1541,7 @@ fig.~\ref{fig:sig_sleep_wrong}.
   \label{fig:sig_sleep_wrong}
 \end{figure}
 
-Dato che è nostra intenzione utilizzare \const{SIGALRM} il primo passo della
+Dato che è nostra intenzione utilizzare \signal{SIGALRM} il primo passo della
 nostra implementazione sarà quello di installare il relativo gestore salvando
 il precedente (\texttt{\small 14-17}).  Si effettuerà poi una chiamata ad
 \func{alarm} per specificare il tempo d'attesa per l'invio del segnale a cui
@@ -1558,7 +1558,7 @@ presenta una pericolosa \itindex{race~condition} \textit{race condition}.
 Infatti, se il processo viene interrotto fra la chiamata di \func{alarm} e
 \func{pause}, può capitare (ad esempio se il sistema è molto carico) che il
 tempo di attesa scada prima dell'esecuzione di quest'ultima, cosicché essa
-sarebbe eseguita dopo l'arrivo di \const{SIGALRM}. In questo caso ci si
+sarebbe eseguita dopo l'arrivo di \signal{SIGALRM}. In questo caso ci si
 troverebbe di fronte ad un \itindex{deadlock} deadlock, in quanto \func{pause}
 non verrebbe mai più interrotta (se non in caso di un altro segnale).
 
@@ -1598,10 +1598,10 @@ qualche forma di evento; in genere quello che si fa in questo caso è impostare
 nel gestore un opportuno flag da controllare nel corpo principale del
 programma (con un codice del tipo di quello riportato in
 fig.~\ref{fig:sig_event_wrong}). La logica è quella di far impostare al
-gestore (\texttt{\small 14-19}) una variabile globale preventivamente
-inizializzata nel programma principale, il quale potrà determinare,
-osservandone il contenuto, l'occorrenza o meno del segnale, e prendere le
-relative azioni conseguenti (\texttt{\small 6-11}).
+gestore (\texttt{\small 14-19}) una \index{variabili!globali} variabile
+globale preventivamente inizializzata nel programma principale, il quale potrà
+determinare, osservandone il contenuto, l'occorrenza o meno del segnale, e
+prendere le relative azioni conseguenti (\texttt{\small 6-11}).
 
 \begin{figure}[!htbp]
   \footnotesize\centering
@@ -1720,8 +1720,8 @@ da un processo. Il suo prototipo è:
     errore, nel qual caso \var{errno} assumerà i valori:
   \begin{errlist}
   \item[\errcode{EINVAL}] si è specificato un numero di segnale invalido o si è
-    cercato di installare il gestore per \const{SIGKILL} o
-    \const{SIGSTOP}.
+    cercato di installare il gestore per \signal{SIGKILL} o
+    \signal{SIGSTOP}.
   \item[\errcode{EFAULT}] si sono specificati indirizzi non validi.
   \end{errlist}}
 \end{prototype}
@@ -1772,7 +1772,7 @@ dell'implementazione di \code{sleep} mostrata in
 fig.~\ref{fig:sig_sleep_incomplete}. In quel caso infatti se il segnale di
 allarme avesse interrotto un altro gestore questo non sarebbe stato eseguito
 correttamente; la cosa poteva essere prevenuta installando gli altri gestori
-usando \var{sa\_mask} per bloccare \const{SIGALRM} durante la loro esecuzione.
+usando \var{sa\_mask} per bloccare \signal{SIGALRM} durante la loro esecuzione.
 Il valore di \var{sa\_flag} permette di specificare vari aspetti del
 comportamento di \func{sigaction}, e della reazione del processo ai vari
 segnali; i valori possibili ed il relativo significato sono riportati in
@@ -1786,11 +1786,11 @@ tab.~\ref{tab:sig_sa_flag}.
     \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
-    \const{SA\_NOCLDSTOP}& Se il segnale è \const{SIGCHLD} allora non deve
+    \const{SA\_NOCLDSTOP}& Se il segnale è \signal{SIGCHLD} allora non deve
                            essere notificato quando il processo figlio viene
-                           fermato da uno dei segnali \const{SIGSTOP},
-                           \const{SIGTSTP}, \const{SIGTTIN} o 
-                           \const{SIGTTOU}.\\
+                           fermato da uno dei segnali \signal{SIGSTOP},
+                           \signal{SIGTSTP}, \signal{SIGTTIN} o 
+                           \signal{SIGTTOU}.\\
     \const{SA\_RESETHAND}& Ristabilisce l'azione per il segnale al valore 
                            predefinito una volta che il gestore è stato
                            lanciato, riproduce cioè il comportamento della
@@ -1813,7 +1813,7 @@ tab.~\ref{tab:sig_sa_flag}.
                            gestore in forma estesa usando
                            \var{sa\_sigaction} al posto di
                            \var{sa\_handler}.\\
-    \const{SA\_NOCLDWAIT}& Se il segnale è \const{SIGCHLD} allora i processi
+    \const{SA\_NOCLDWAIT}& Se il segnale è \signal{SIGCHLD} allora i processi
                            figli non diventano \textit{zombie} quando
                            terminano.\footnotemark \\ 
     \hline
@@ -1836,7 +1836,7 @@ specificare, a seconda dell'uso o meno del flag \const{SA\_SIGINFO},
 rispettivamente attraverso i campi \var{sa\_sigaction} o
 \var{sa\_handler},\footnote{i due campi devono essere usati in maniera
   alternativa, in certe implementazioni questi campi vengono addirittura
-  definiti come \ctyp{union}.}  Quest'ultima è quella classica usata anche con
+  definiti come \direct{union}.}  Quest'ultima è quella classica usata anche con
 \func{signal}, mentre la prima permette di usare un gestore più complesso, in
 grado di ricevere informazioni più dettagliate dal sistema, attraverso la
 struttura \struct{siginfo\_t}, riportata in fig.~\ref{fig:sig_siginfo_t}.
@@ -1869,11 +1869,11 @@ in questo caso sono riportati in tab.~\ref{tab:sig_si_code_generic}.
 
 Nel caso di alcuni segnali però il valore di \var{si\_code} viene usato per
 fornire una informazione specifica relativa alle motivazioni della ricezione
-dello stesso; ad esempio i vari segnali di errore (\const{SIGILL},
-\const{SIGFPE}, \const{SIGSEGV} e \const{SIGBUS}) lo usano per fornire
+dello stesso; ad esempio i vari segnali di errore (\signal{SIGILL},
+\signal{SIGFPE}, \signal{SIGSEGV} e \signal{SIGBUS}) lo usano per fornire
 maggiori dettagli riguardo l'errore, come il tipo di errore aritmetico, di
 istruzione illecita o di violazione di memoria; mentre alcuni segnali di
-controllo (\const{SIGCHLD}, \const{SIGTRAP} e \const{SIGPOLL}) forniscono
+controllo (\signal{SIGCHLD}, \signal{SIGTRAP} e \signal{SIGPOLL}) forniscono
 altre informazioni specifiche.
 
 \begin{table}[!htb]
@@ -1896,7 +1896,7 @@ altre informazioni specifiche.
     \const{SI\_ASYNCIO}& una operazione di I/O asincrono (vedi
                          sez.~\ref{sec:file_asyncronous_access}) è stata
                          completata.\\
-    \const{SI\_SIGIO}  & segnale di \const{SIGIO} da una coda (vedi
+    \const{SI\_SIGIO}  & segnale di \signal{SIGIO} da una coda (vedi
                          sez.~\ref{sec:file_asyncronous_operation}).\\ 
     \const{SI\_TKILL}  & inviato da \func{tkill} o \func{tgkill} (vedi
                          sez.~\ref{cha:threads_xxx}).\footnotemark\\ 
@@ -1973,22 +1973,22 @@ cui si sono appena citati i rispettivi segnali.\footnote{il prefisso del nome
     \hline
   \end{tabular}
   \caption{Valori del campo \var{si\_code} della struttura \struct{sigaction}
-    impostati rispettivamente dai segnali \const{SIGILL}, \const{SIGFPE},
-    \const{SIGSEGV}, \const{SIGBUS}, \const{SIGCHLD}, \const{SIGTRAP} e
-    \const{SIGPOLL}/\const{SIGIO}.}
+    impostati rispettivamente dai segnali \signal{SIGILL}, \signal{SIGFPE},
+    \signal{SIGSEGV}, \signal{SIGBUS}, \signal{SIGCHLD}, \signal{SIGTRAP} e
+    \signal{SIGPOLL}/\signal{SIGIO}.}
   \label{tab:sig_si_code_special}
 \end{table}
 
-Il resto della struttura \struct{siginfo\_t} è definito come \ctyp{union} ed i
-valori eventualmente presenti dipendono dal segnale, così \const{SIGCHLD} ed i
+Il resto della struttura \struct{siginfo\_t} è definito come \direct{union} ed i
+valori eventualmente presenti dipendono dal segnale, così \signal{SIGCHLD} ed i
 segnali \textit{real-time} (vedi sez.~\ref{sec:sig_real_time}) inviati tramite
 \func{kill} avvalorano \var{si\_pid} e \var{si\_uid} coi valori corrispondenti
-al processo che ha emesso il segnale, \const{SIGCHLD} avvalora anche i campi
+al processo che ha emesso il segnale, \signal{SIGCHLD} avvalora anche i campi
 \var{si\_status}, \var{si\_utime} e \var{si\_stime} che indicano
 rispettivamente lo stato di uscita, l'\textit{user time} e il \textit{system
   time} (vedi sez.~\ref{sec:sys_cpu_times}) usati dal processo;
-\const{SIGILL}, \const{SIGFPE}, \const{SIGSEGV} e \const{SIGBUS} avvalorano
-\var{si\_addr} con l'indirizzo in cui è avvenuto l'errore, \const{SIGIO} (vedi
+\signal{SIGILL}, \signal{SIGFPE}, \signal{SIGSEGV} e \signal{SIGBUS} avvalorano
+\var{si\_addr} con l'indirizzo in cui è avvenuto l'errore, \signal{SIGIO} (vedi
 sez.~\ref{sec:file_asyncronous_io}) avvalora \var{si\_fd} con il numero del
 file descriptor e \var{si\_band} per i \itindex{out-of-band} dati urgenti
 (vedi sez.~\ref{sec:TCP_urgent_data}) su un socket, il segnale inviato alla
@@ -2155,7 +2155,7 @@ sospensione del processo lo standard POSIX ha previsto la funzione
 Come esempio dell'uso di queste funzioni proviamo a riscrivere un'altra volta
 l'esempio di implementazione di \code{sleep}. Abbiamo accennato in
 sez.~\ref{sec:sig_sigaction} come con \func{sigaction} sia possibile bloccare
-\const{SIGALRM} nell'installazione dei gestori degli altri segnali, per poter
+\signal{SIGALRM} nell'installazione dei gestori degli altri segnali, per poter
 usare l'implementazione vista in fig.~\ref{fig:sig_sleep_incomplete} senza
 interferenze.  Questo però comporta una precauzione ulteriore al semplice uso
 della funzione, vediamo allora come usando la nuova interfaccia è possibile
@@ -2179,18 +2179,18 @@ non esegue nessuna operazione, limitandosi a ritornare per interrompere il
 programma messo in attesa.
 
 La prima parte della funzione (\texttt{\small 6-10}) provvede ad installare
-l'opportuno gestore per \const{SIGALRM}, salvando quello originario, che
+l'opportuno gestore per \signal{SIGALRM}, salvando quello originario, che
 sarà ripristinato alla conclusione della stessa (\texttt{\small 23}); il passo
-successivo è quello di bloccare \const{SIGALRM} (\texttt{\small 11-14}) per
+successivo è quello di bloccare \signal{SIGALRM} (\texttt{\small 11-14}) per
 evitare che esso possa essere ricevuto dal processo fra l'esecuzione di
 \func{alarm} (\texttt{\small 16}) e la sospensione dello stesso. Nel fare
 questo si salva la maschera corrente dei segnali, che sarà ripristinata alla
 fine (\texttt{\small 22}), e al contempo si prepara la maschera dei segnali
-\var{sleep\_mask} per riattivare \const{SIGALRM} all'esecuzione di
+\var{sleep\_mask} per riattivare \signal{SIGALRM} all'esecuzione di
 \func{sigsuspend}.  
 
 In questo modo non sono più possibili \itindex{race~condition} \textit{race
-  condition} dato che \const{SIGALRM} viene disabilitato con
+  condition} dato che \signal{SIGALRM} viene disabilitato con
 \func{sigprocmask} fino alla chiamata di \func{sigsuspend}.  Questo metodo è
 assolutamente generale e può essere applicato a qualunque altra situazione in
 cui si deve attendere per un segnale, i passi sono sempre i seguenti:
@@ -2309,10 +2309,11 @@ ulteriori funzioni in fig.~\ref{fig:sig_safe_functions_posix_2008}.
 Per questo motivo è opportuno mantenere al minimo indispensabile le operazioni
 effettuate all'interno di un gestore di segnali, qualora si debbano compiere
 operazioni complesse è sempre preferibile utilizzare la tecnica in cui si usa
-il gestore per impostare il valore di una qualche variabile globale, e poi si
-eseguono le operazioni complesse nel programma verificando (con tutti gli
-accorgimenti visti in precedenza) il valore di questa variabile tutte le volte
-che si è rilevata una interruzione dovuta ad un segnale.
+il gestore per impostare il valore di una qualche \index{variabili!globali}
+variabile globale, e poi si eseguono le operazioni complesse nel programma
+verificando (con tutti gli accorgimenti visti in precedenza) il valore di
+questa variabile tutte le volte che si è rilevata una interruzione dovuta ad
+un segnale.
 
 
 \section{Funzionalità avanzate}
@@ -2433,7 +2434,7 @@ per la restituzione dei dati viene usato il campo \var{si\_value}.
   \label{fig:sig_sigval}
 \end{figure}
 
-Questo è una \ctyp{union} di tipo \struct{sigval} (la sua definizione è in
+Questo è una \direct{union} di tipo \struct{sigval} (la sua definizione è in
 fig.~\ref{fig:sig_sigval}) in cui può essere memorizzato o un valore numerico,
 se usata nella forma \var{sival\_int}, o un indirizzo, se usata nella forma
 \var{sival\_ptr}. L'unione viene usata dai segnali \textit{real-time} e da
@@ -2972,7 +2973,7 @@ effettuata. Diventa così possibile indicare l'uso di un segnale o l'esecuzione
                              segnale è stato installato con
                              \const{SA\_SIGINFO} gli verrà restituito il
                              valore specificato con \var{sigev\_value} (una
-                             \ctyp{union} \texttt{sigval}, la cui definizione
+                             \direct{union} \texttt{sigval}, la cui definizione
                              è in fig.~\ref{fig:sig_sigval}) come valore del
                              campo \var{si\_value} di \struct{siginfo\_t}.\\
     \const{SIGEV\_THREAD}  & La notifica viene effettuata creando un nuovo
@@ -3008,9 +3009,9 @@ Nel caso di \func{timer\_create} occorrerà passare alla funzione come secondo
 argomento l'indirizzo di una di queste strutture per indicare le modalità con
 cui si vuole essere notificati della scadenza del timer, se non si specifica
 nulla (passando un valore \val{NULL}) verrà inviato il segnale
-\const{SIGALRM} al processo corrente, o per essere più precisi verrà
+\signal{SIGALRM} al processo corrente, o per essere più precisi verrà
 utilizzato un valore equivalente all'aver specificato \const{SIGEV\_SIGNAL}
-per \var{sigev\_notify}, \const{SIGALRM} per \var{sigev\_signo} e
+per \var{sigev\_notify}, \signal{SIGALRM} per \var{sigev\_signo} e
 l'identificatore del timer come valore per \var{sigev\_value.sival\_int}.
 
 Il terzo argomento deve essere l'indirizzo di una variabile di tipo
@@ -3329,7 +3330,7 @@ segnali quando si teme di avere problemi di esaurimento dello \textit{stack}
 standard o di superamento di un limite (vedi
 sez.~\ref{sec:sys_resource_limit}) imposto con chiamate del tipo
 \code{setrlimit(RLIMIT\_STACK, \&rlim)}.  In tal caso infatti si avrebbe un
-segnale di \const{SIGSEGV}, che potrebbe essere gestito soltanto avendo
+segnale di \signal{SIGSEGV}, che potrebbe essere gestito soltanto avendo
 abilitato uno \itindex{stack} \textit{stack} alternativo.
 
 Si tenga presente che le funzioni chiamate durante l'esecuzione sullo