Sistemata la parte della allocazione della memoria, le variadic
[gapil.git] / prochand.tex
index 7e882abcd86f9ebdc60a8a247c572a1ebe8160e0..5c526dfec4e17a394d79ef291303a8a759b25b5f 100644 (file)
@@ -671,7 +671,7 @@ Le differenze fra padre e figlio dopo la \func{fork} invece sono:\footnote{a
   sez.~\ref{sec:file_memory_map}) che non vengono ereditate dal figlio;
 \item l'impostazione con \func{prctl} (vedi sez.~\ref{sec:process_prctl}) che
   notifica al figlio la terminazione del padre viene cancellata;
   sez.~\ref{sec:file_memory_map}) che non vengono ereditate dal figlio;
 \item l'impostazione con \func{prctl} (vedi sez.~\ref{sec:process_prctl}) che
   notifica al figlio la terminazione del padre viene cancellata;
-\item il segnale di terminazione del figlio è sempre \const{SIGCHLD} anche
+\item il segnale di terminazione del figlio è sempre \signal{SIGCHLD} anche
   qualora nel padre fosse stato modificato (vedi sez.~\ref{sec:process_clone}). 
 \end{itemize*}
 
   qualora nel padre fosse stato modificato (vedi sez.~\ref{sec:process_clone}). 
 \end{itemize*}
 
@@ -717,7 +717,7 @@ modalità di conclusione anomala; queste sono in sostanza due: il programma può
 chiamare la funzione \func{abort} per invocare una chiusura anomala, o essere
 terminato da un segnale (torneremo sui segnali in cap.~\ref{cha:signals}).  In
 realtà anche la prima modalità si riconduce alla seconda, dato che
 chiamare la funzione \func{abort} per invocare una chiusura anomala, o essere
 terminato da un segnale (torneremo sui segnali in cap.~\ref{cha:signals}).  In
 realtà anche la prima modalità si riconduce alla seconda, dato che
-\func{abort} si limita a generare il segnale \const{SIGABRT}.
+\func{abort} si limita a generare il segnale \signal{SIGABRT}.
 
 Qualunque sia la modalità di conclusione di un processo, il kernel esegue
 comunque una serie di operazioni: chiude tutti i file aperti, rilascia la
 
 Qualunque sia la modalità di conclusione di un processo, il kernel esegue
 comunque una serie di operazioni: chiude tutti i file aperti, rilascia la
@@ -728,15 +728,15 @@ eseguite alla chiusura di un processo è il seguente:
 \item viene memorizzato lo stato di terminazione del processo;
 \item ad ogni processo figlio viene assegnato un nuovo padre (in genere
   \cmd{init});
 \item viene memorizzato lo stato di terminazione del processo;
 \item ad ogni processo figlio viene assegnato un nuovo padre (in genere
   \cmd{init});
-\item viene inviato il segnale \const{SIGCHLD} al processo padre (vedi
+\item viene inviato il segnale \signal{SIGCHLD} al processo padre (vedi
   sez.~\ref{sec:sig_sigchld});
 \item se il processo è un leader di sessione ed il suo terminale di controllo
   sez.~\ref{sec:sig_sigchld});
 \item se il processo è un leader di sessione ed il suo terminale di controllo
-  è quello della sessione viene mandato un segnale di \const{SIGHUP} a tutti i
+  è quello della sessione viene mandato un segnale di \signal{SIGHUP} a tutti i
   processi del gruppo di \textit{foreground} e il terminale di controllo viene
   disconnesso (vedi sez.~\ref{sec:sess_ctrl_term});
 \item se la conclusione di un processo rende orfano un \textit{process
     group} ciascun membro del gruppo viene bloccato, e poi gli vengono
   processi del gruppo di \textit{foreground} e il terminale di controllo viene
   disconnesso (vedi sez.~\ref{sec:sess_ctrl_term});
 \item se la conclusione di un processo rende orfano un \textit{process
     group} ciascun membro del gruppo viene bloccato, e poi gli vengono
-  inviati in successione i segnali \const{SIGHUP} e \const{SIGCONT}
+  inviati in successione i segnali \signal{SIGHUP} e \signal{SIGCONT}
   (vedi ancora sez.~\ref{sec:sess_ctrl_term}).
 \end{itemize*}
 
   (vedi ancora sez.~\ref{sec:sess_ctrl_term}).
 \end{itemize*}
 
@@ -1004,7 +1004,7 @@ sez.~\ref{sec:thread_xxx}).
     \const{\_\_WCLONE}& Attende solo per i figli creati con \func{clone} 
                         (vedi sez.~\ref{sec:process_clone}), vale a dire
                         processi che non emettono nessun segnale 
     \const{\_\_WCLONE}& Attende solo per i figli creati con \func{clone} 
                         (vedi sez.~\ref{sec:process_clone}), vale a dire
                         processi che non emettono nessun segnale 
-                        o emettono un segnale diverso da \const{SIGCHLD} alla
+                        o emettono un segnale diverso da \signal{SIGCHLD} alla
                         terminazione. \\
     \const{\_\_WALL}  & Attende per qualunque processo figlio. \\
     \const{\_\_WNOTHREAD}& Non attende per i figli di altri \textit{thread}
                         terminazione. \\
     \const{\_\_WALL}  & Attende per qualunque processo figlio. \\
     \const{\_\_WNOTHREAD}& Non attende per i figli di altri \textit{thread}
@@ -1038,7 +1038,7 @@ quando un processo figlio entra nello stato \textit{stopped}\footnote{in
   sez.~\ref{sec:process_ptrace}).} (vedi tab.~\ref{tab:proc_proc_states}),
 mentre con \const{WCONTINUED} la funzione ritorna quando un processo in stato
 \textit{stopped} riprende l'esecuzione per la ricezione del segnale
   sez.~\ref{sec:process_ptrace}).} (vedi tab.~\ref{tab:proc_proc_states}),
 mentre con \const{WCONTINUED} la funzione ritorna quando un processo in stato
 \textit{stopped} riprende l'esecuzione per la ricezione del segnale
-\const{SIGCONT} (l'uso di questi segnali per il controllo di sessione è
+\signal{SIGCONT} (l'uso di questi segnali per il controllo di sessione è
 dettagliato in sez.~\ref{sec:sess_ctrl_term}).
 
 La terminazione di un processo figlio (così come gli altri eventi osservabili
 dettagliato in sez.~\ref{sec:sess_ctrl_term}).
 
 La terminazione di un processo figlio (così come gli altri eventi osservabili
@@ -1046,7 +1046,7 @@ con \func{waitpid}) è chiaramente un evento asincrono rispetto all'esecuzione
 di un programma e può avvenire in un qualunque momento. Per questo motivo,
 come accennato nella sezione precedente, una delle azioni prese dal kernel
 alla conclusione di un processo è quella di mandare un segnale di
 di un programma e può avvenire in un qualunque momento. Per questo motivo,
 come accennato nella sezione precedente, una delle azioni prese dal kernel
 alla conclusione di un processo è quella di mandare un segnale di
-\const{SIGCHLD} al padre. L'azione predefinita (si veda
+\signal{SIGCHLD} al padre. L'azione predefinita (si veda
 sez.~\ref{sec:sig_base}) per questo segnale è di essere ignorato, ma la sua
 generazione costituisce il meccanismo di comunicazione asincrona con cui il
 kernel avverte il processo padre che uno dei suoi figli è terminato.
 sez.~\ref{sec:sig_base}) per questo segnale è di essere ignorato, ma la sua
 generazione costituisce il meccanismo di comunicazione asincrona con cui il
 kernel avverte il processo padre che uno dei suoi figli è terminato.
@@ -1055,7 +1055,7 @@ Il comportamento delle funzioni è però cambiato nel passaggio dal kernel 2.4
 al kernel 2.6, quest'ultimo infatti si è adeguato alle prescrizioni dello
 standard POSIX.1-2001,\footnote{una revisione del 2001 dello standard POSIX.1
   che ha aggiunto dei requisiti e delle nuove funzioni, come \func{waitid}.}
 al kernel 2.6, quest'ultimo infatti si è adeguato alle prescrizioni dello
 standard POSIX.1-2001,\footnote{una revisione del 2001 dello standard POSIX.1
   che ha aggiunto dei requisiti e delle nuove funzioni, come \func{waitid}.}
-e come da esso richiesto se \const{SIGCHLD} viene ignorato, o se si imposta il
+e come da esso richiesto se \signal{SIGCHLD} viene ignorato, o se si imposta il
 flag di \const{SA\_NOCLDSTOP} nella ricezione dello stesso (si veda
 sez.~\ref{sec:sig_sigaction}) i processi figli che terminano non diventano
 \textit{zombie} e sia \func{wait} che \func{waitpid} si bloccano fintanto che
 flag di \const{SA\_NOCLDSTOP} nella ricezione dello stesso (si veda
 sez.~\ref{sec:sig_sigaction}) i processi figli che terminano non diventano
 \textit{zombie} e sia \func{wait} che \func{waitpid} si bloccano fintanto che
@@ -1063,13 +1063,13 @@ tutti i processi figli non sono terminati, dopo di che falliscono con un
 errore di \errcode{ENOCHLD}.\footnote{questo è anche il motivo per cui le
   opzioni \const{WUNTRACED} e \const{WCONTINUED} sono utilizzabili soltanto
   qualora non si sia impostato il flag di \const{SA\_NOCLDSTOP} per il segnale
 errore di \errcode{ENOCHLD}.\footnote{questo è anche il motivo per cui le
   opzioni \const{WUNTRACED} e \const{WCONTINUED} sono utilizzabili soltanto
   qualora non si sia impostato il flag di \const{SA\_NOCLDSTOP} per il segnale
-  \const{SIGCHLD}.}
+  \signal{SIGCHLD}.}
 
 Con i kernel della serie 2.4 e tutti i kernel delle serie precedenti entrambe
 le funzioni di attesa ignorano questa prescrizione\footnote{lo standard POSIX.1
   originale infatti lascia indefinito il comportamento di queste funzioni
 
 Con i kernel della serie 2.4 e tutti i kernel delle serie precedenti entrambe
 le funzioni di attesa ignorano questa prescrizione\footnote{lo standard POSIX.1
   originale infatti lascia indefinito il comportamento di queste funzioni
-  quando \const{SIGCHLD} viene ignorato.} e si comportano sempre nello stesso
-modo, indipendentemente dal fatto \const{SIGCHLD} sia ignorato o meno:
+  quando \signal{SIGCHLD} viene ignorato.} e si comportano sempre nello stesso
+modo, indipendentemente dal fatto \signal{SIGCHLD} sia ignorato o meno:
 attendono la terminazione di un processo figlio e ritornano il relativo
 \acr{pid} e lo stato di terminazione nell'argomento \param{status}.
 
 attendono la terminazione di un processo figlio e ritornano il relativo
 \acr{pid} e lo stato di terminazione nell'argomento \param{status}.
 
@@ -1112,7 +1112,7 @@ attendono la terminazione di un processo figlio e ritornano il relativo
                              nullo. \\ 
     \macro{WIFCONTINUED(s)}& Vera se il processo che ha causato il ritorno è
                              stato riavviato da un
                              nullo. \\ 
     \macro{WIFCONTINUED(s)}& Vera se il processo che ha causato il ritorno è
                              stato riavviato da un
-                             \const{SIGCONT}.\footnotemark  \\ 
+                             \signal{SIGCONT}.\footnotemark  \\ 
     \hline
   \end{tabular}
   \caption{Descrizione delle varie macro di preprocessore utilizzabili per 
     \hline
   \end{tabular}
   \caption{Descrizione delle varie macro di preprocessore utilizzabili per 
@@ -1134,7 +1134,7 @@ la presenza di \index{zombie} \textit{zombie}).
 
 Per questo la modalità più comune di chiamare queste funzioni è quella di
 utilizzarle all'interno di un \textit{signal handler} (vedremo un esempio di
 
 Per questo la modalità più comune di chiamare queste funzioni è quella di
 utilizzarle all'interno di un \textit{signal handler} (vedremo un esempio di
-come gestire \const{SIGCHLD} con i segnali in sez.~\ref{sec:sig_example}). In
+come gestire \signal{SIGCHLD} con i segnali in sez.~\ref{sec:sig_example}). In
 questo caso infatti, dato che il segnale è generato dalla terminazione di un
 figlio, avremo la certezza che la chiamata a \func{waitpid} non si bloccherà.
 
 questo caso infatti, dato che il segnale è generato dalla terminazione di un
 figlio, avremo la certezza che la chiamata a \func{waitpid} non si bloccherà.
 
@@ -1276,7 +1276,7 @@ campi:
 \item[\var{si\_pid}] con il \acr{pid} del figlio.
 \item[\var{si\_uid}] con l'user-ID reale (vedi sez.~\ref{sec:proc_perms}) del
   figlio.
 \item[\var{si\_pid}] con il \acr{pid} del figlio.
 \item[\var{si\_uid}] con l'user-ID reale (vedi sez.~\ref{sec:proc_perms}) del
   figlio.
-\item[\var{si\_signo}] con \const{SIGCHLD}.
+\item[\var{si\_signo}] con \signal{SIGCHLD}.
 \item[\var{si\_status}] con lo stato di uscita del figlio o con il segnale che
   lo ha terminato, fermato o riavviato.
 \item[\var{si\_code}] con uno fra \const{CLD\_EXITED}, \const{CLD\_KILLED},
 \item[\var{si\_status}] con lo stato di uscita del figlio o con il segnale che
   lo ha terminato, fermato o riavviato.
 \item[\var{si\_code}] con uno fra \const{CLD\_EXITED}, \const{CLD\_KILLED},
@@ -1521,7 +1521,7 @@ I segnali che sono stati impostati per essere ignorati nel processo chiamante
 mantengono la stessa impostazione pure nel nuovo programma, ma tutti gli altri
 segnali, ed in particolare quelli per i quali è stato installato un gestore
 vengono impostati alla loro azione predefinita (vedi
 mantengono la stessa impostazione pure nel nuovo programma, ma tutti gli altri
 segnali, ed in particolare quelli per i quali è stato installato un gestore
 vengono impostati alla loro azione predefinita (vedi
-sez.~\ref{sec:sig_gen_beha}). Un caso speciale è il segnale \const{SIGCHLD}
+sez.~\ref{sec:sig_gen_beha}). Un caso speciale è il segnale \signal{SIGCHLD}
 che, quando impostato a \const{SIG\_IGN}, potrebbe anche essere reimpostato a
 \const{SIG\_DFL}, anche se questo con Linux non avviene.\footnote{lo standard
   POSIX.1-2001 prevede che questo comportamento sia deciso dalla singola
 che, quando impostato a \const{SIG\_IGN}, potrebbe anche essere reimpostato a
 \const{SIG\_DFL}, anche se questo con Linux non avviene.\footnote{lo standard
   POSIX.1-2001 prevede che questo comportamento sia deciso dalla singola
@@ -1548,7 +1548,7 @@ nell'esecuzione della funzione \func{exec}, queste sono:
   sez.~\ref{sec:process_prctl}) viene cancellato;
 \item il nome del processo viene impostato al nome del file contenente il
   programma messo in esecuzione;
   sez.~\ref{sec:process_prctl}) viene cancellato;
 \item il nome del processo viene impostato al nome del file contenente il
   programma messo in esecuzione;
-\item il segnale di terminazione viene reimpostato a \const{SIGCHLD};
+\item il segnale di terminazione viene reimpostato a \signal{SIGCHLD};
 \item l'ambiente viene reinizializzato impostando le variabili attinenti alla
   localizzazione al valore di default POSIX. 
 \end{itemize*}
 \item l'ambiente viene reinizializzato impostando le variabili attinenti alla
   localizzazione al valore di default POSIX. 
 \end{itemize*}
@@ -2260,7 +2260,7 @@ fintanto che esso si trova in uno qualunque degli altri stati.
                                     genere per I/O), e non può essere
                                     interrotto in nessuna circostanza.\\
     \textbf{Stopped} & \texttt{T} & Il processo è stato fermato con un
                                     genere per I/O), e non può essere
                                     interrotto in nessuna circostanza.\\
     \textbf{Stopped} & \texttt{T} & Il processo è stato fermato con un
-                                    \const{SIGSTOP}, o è tracciato.\\
+                                    \signal{SIGSTOP}, o è tracciato.\\
     \textbf{Zombie}\index{zombie} & \texttt{Z} & Il processo è terminato ma il
                                     suo stato di terminazione non è ancora
                                     stato letto dal padre.\\
     \textbf{Zombie}\index{zombie} & \texttt{Z} & Il processo è terminato ma il
                                     suo stato di terminazione non è ancora
                                     stato letto dal padre.\\
@@ -2268,7 +2268,7 @@ fintanto che esso si trova in uno qualunque degli altri stati.
                                     2.6.25, sostanzialmente identico
                                     all'\textbf{Uninterrutible Sleep} con la
                                     sola differenza che il processo può
                                     2.6.25, sostanzialmente identico
                                     all'\textbf{Uninterrutible Sleep} con la
                                     sola differenza che il processo può
-                                    terminato con \const{SIGKILL} (usato per
+                                    terminato con \signal{SIGKILL} (usato per
                                     lo più per NFS).\\ 
     \hline
   \end{tabular}
                                     lo più per NFS).\\ 
     \hline
   \end{tabular}
@@ -3002,7 +3002,7 @@ nell'evitare la perdita della cache da rendere conveniente l'uso dell'affinità
 di processore.
 
 Per facilitare l'uso dell'argomento \param{cpuset} le \acr{glibc} hanno
 di processore.
 
 Per facilitare l'uso dell'argomento \param{cpuset} le \acr{glibc} hanno
-introdotto un apposito dato di tipo, \ctyp{cpu\_set\_t},\footnote{questa è una
+introdotto un apposito dato di tipo, \type{cpu\_set\_t},\footnote{questa è una
   estensione specifica delle \acr{glibc}, da attivare definendo la macro
   \macro{\_GNU\_SOURCE}, non esiste infatti una standardizzazione per
   questo tipo di interfaccia e POSIX al momento non prevede nulla al
   estensione specifica delle \acr{glibc}, da attivare definendo la macro
   \macro{\_GNU\_SOURCE}, non esiste infatti una standardizzazione per
   questo tipo di interfaccia e POSIX al momento non prevede nulla al
@@ -3361,7 +3361,7 @@ vedremo a breve, consente anche di passare per \param{child\_stack} il valore
 \val{NULL}, che non imposta un nuovo \textit{stack}. Se infatti si crea un
 processo, questo ottiene un suo nuovo spazio degli indirizzi,\footnote{è
   sottinteso cioè che non si stia usando il flag \const{CLONE\_VM}.} ed in
 \val{NULL}, che non imposta un nuovo \textit{stack}. Se infatti si crea un
 processo, questo ottiene un suo nuovo spazio degli indirizzi,\footnote{è
   sottinteso cioè che non si stia usando il flag \const{CLONE\_VM}.} ed in
-questo caso si applica la semantica del \itindex{copy-on-write} \textit{copy
+questo caso si applica la semantica del \itindex{copy~on~write} \textit{copy
   on write} illustrata in sez.~\ref{sec:proc_fork}, per cui le pagine dello
 \textit{stack} verranno automaticamente copiate come le altre e il nuovo
 processo avrà un suo \textit{stack} totalmente indipendente da quello del
   on write} illustrata in sez.~\ref{sec:proc_fork}, per cui le pagine dello
 \textit{stack} verranno automaticamente copiate come le altre e il nuovo
 processo avrà un suo \textit{stack} totalmente indipendente da quello del
@@ -3531,14 +3531,14 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
   PowerPC.
 \item[\const{PR\_GET\_ENDIAN}] Ottiene il valore della \textit{endianess} del
   processo chiamante, salvato sulla variabile puntata da \param{arg2} che deve
   PowerPC.
 \item[\const{PR\_GET\_ENDIAN}] Ottiene il valore della \textit{endianess} del
   processo chiamante, salvato sulla variabile puntata da \param{arg2} che deve
-  essere passata come di tipo \type{(int *)}. Introdotta a partire dal kernel
+  essere passata come di tipo \ctyp{(int *)}. Introdotta a partire dal kernel
   2.6.18, solo su PowerPC.
 \item[\const{PR\_SET\_FPEMU}] Imposta i bit di controllo per l'emulazione
   della virgola mobile su architettura ia64, secondo il valore
   di \param{arg2}, si deve passare \const{PR\_FPEMU\_NOPRINT} per emulare in
   maniera trasparente l'accesso alle operazioni in virgola mobile, o
   \const{PR\_FPEMU\_SIGFPE} per non emularle ed inviare il segnale
   2.6.18, solo su PowerPC.
 \item[\const{PR\_SET\_FPEMU}] Imposta i bit di controllo per l'emulazione
   della virgola mobile su architettura ia64, secondo il valore
   di \param{arg2}, si deve passare \const{PR\_FPEMU\_NOPRINT} per emulare in
   maniera trasparente l'accesso alle operazioni in virgola mobile, o
   \const{PR\_FPEMU\_SIGFPE} per non emularle ed inviare il segnale
-  \const{SIGFPE} (vedi sez.~\ref{sec:sig_prog_error}). Introdotta a partire
+  \signal{SIGFPE} (vedi sez.~\ref{sec:sig_prog_error}). Introdotta a partire
   dal kernel 2.4.18, solo su ia64.
 \item[\const{PR\_GET\_FPEMU}] Ottiene il valore dei flag di controllo
   dell'emulazione della virgola mobile, salvato all'indirizzo puntato
   dal kernel 2.4.18, solo su ia64.
 \item[\const{PR\_GET\_FPEMU}] Ottiene il valore dei flag di controllo
   dell'emulazione della virgola mobile, salvato all'indirizzo puntato
@@ -3588,7 +3588,7 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
 \item[\const{PR\_SET\_PDEATHSIG}] Consente di richiedere l'emissione di un
   segnale, che sarà ricevuto dal processo chiamante, in occorrenza della
   terminazione del proprio processo padre; in sostanza consente di invertire
 \item[\const{PR\_SET\_PDEATHSIG}] Consente di richiedere l'emissione di un
   segnale, che sarà ricevuto dal processo chiamante, in occorrenza della
   terminazione del proprio processo padre; in sostanza consente di invertire
-  il ruolo di \const{SIGCHLD}. Il valore di \param{arg2} deve indicare il
+  il ruolo di \signal{SIGCHLD}. Il valore di \param{arg2} deve indicare il
   numero del segnale, o 0 per disabilitare l'emissione. Il valore viene
   automaticamente cancellato per un processo figlio creato con \func{fork}.
   Introdotta a partire dal kernel 2.1.57.
   numero del segnale, o 0 per disabilitare l'emissione. Il valore viene
   automaticamente cancellato per un processo figlio creato con \func{fork}.
   Introdotta a partire dal kernel 2.1.57.
@@ -3646,7 +3646,7 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
   \textit{timestamp} (TSC, o \textit{Time Stamp Counter}) da indicare con il
   valore di \param{arg2}. Si deve specificare \const{PR\_TSC\_ENABLE} per
   abilitare la lettura o \const{PR\_TSC\_SIGSEGV} per disabilitarla con la
   \textit{timestamp} (TSC, o \textit{Time Stamp Counter}) da indicare con il
   valore di \param{arg2}. Si deve specificare \const{PR\_TSC\_ENABLE} per
   abilitare la lettura o \const{PR\_TSC\_SIGSEGV} per disabilitarla con la
-  generazione di un segnale di \const{SIGSEGV} (vedi
+  generazione di un segnale di \signal{SIGSEGV} (vedi
   sez.~\ref{sec:sig_prog_error}). La lettura viene automaticamente
   disabilitata se si attiva il \textit{secure computing mode}.  Introdotta a
   partire dal kernel 2.6.26, solo su x86.
   sez.~\ref{sec:sig_prog_error}). La lettura viene automaticamente
   disabilitata se si attiva il \textit{secure computing mode}.  Introdotta a
   partire dal kernel 2.6.26, solo su x86.
@@ -3662,7 +3662,7 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
   illegali, da indicare con il valore di \param{arg2}. Si deve specificare il
   valore \const{PR\_UNALIGN\_NOPRINT} per ignorare gli accessi non allineati,
   ed il valore \const{PR\_UNALIGN\_SIGBUS} per generare un segnale di
   illegali, da indicare con il valore di \param{arg2}. Si deve specificare il
   valore \const{PR\_UNALIGN\_NOPRINT} per ignorare gli accessi non allineati,
   ed il valore \const{PR\_UNALIGN\_SIGBUS} per generare un segnale di
-  \const{SIGBUS} (vedi sez.~\ref{sec:sig_prog_error}) in caso di accesso non
+  \signal{SIGBUS} (vedi sez.~\ref{sec:sig_prog_error}) in caso di accesso non
   allineato.  Introdotta con diverse versioni su diverse architetture.
 \item[\const{PR\_GET\_UNALIGN}] Ottiene il valore della modalità di controllo
   per l'accesso a indirizzi di memoria non allineati, salvato all'indirizzo
   allineato.  Introdotta con diverse versioni su diverse architetture.
 \item[\const{PR\_GET\_UNALIGN}] Ottiene il valore della modalità di controllo
   per l'accesso a indirizzi di memoria non allineati, salvato all'indirizzo
@@ -3675,7 +3675,7 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
     piattaforme più avanzate che hanno il supporto hardware per questo tipo di
     controlli.} ma devono essere opportunamente riportati ai processi che
   usano quella parte di RAM che presenta errori; nel caso specifico questo
     piattaforme più avanzate che hanno il supporto hardware per questo tipo di
     controlli.} ma devono essere opportunamente riportati ai processi che
   usano quella parte di RAM che presenta errori; nel caso specifico questo
-  avviene attraverso l'emissione di un segnale di \const{SIGBUS} (vedi
+  avviene attraverso l'emissione di un segnale di \signal{SIGBUS} (vedi
   sez.~\ref{sec:sig_prog_error}).\footnote{in particolare viene anche
     impostato il valore di \var{si\_code} in \struct{siginfo\_t} a
     \const{BUS\_MCEERR\_AO}; per il significato di tutto questo si faccia
   sez.~\ref{sec:sig_prog_error}).\footnote{in particolare viene anche
     impostato il valore di \var{si\_code} in \struct{siginfo\_t} a
     \const{BUS\_MCEERR\_AO}; per il significato di tutto questo si faccia
@@ -3697,7 +3697,7 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
   due, che corrispondono anche al valore che si trova nell'impostazione
   generale di sistema di \texttt{memory\_failure\_early\_kill}, con
   \const{PR\_MCE\_KILL\_EARLY} si richiede l'emissione immediata di
   due, che corrispondono anche al valore che si trova nell'impostazione
   generale di sistema di \texttt{memory\_failure\_early\_kill}, con
   \const{PR\_MCE\_KILL\_EARLY} si richiede l'emissione immediata di
-  \const{SIGBUS} non appena viene rilevato un errore, mentre con
+  \signal{SIGBUS} non appena viene rilevato un errore, mentre con
   \const{PR\_MCE\_KILL\_LATE} il segnale verrà inviato solo quando il processo
   tenterà un accesso alla memoria corrotta. Questi due valori corrispondono
   rispettivamente ai valori 1 e 0 di
   \const{PR\_MCE\_KILL\_LATE} il segnale verrà inviato solo quando il processo
   tenterà un accesso alla memoria corrotta. Questi due valori corrispondono
   rispettivamente ai valori 1 e 0 di
@@ -3881,7 +3881,8 @@ queste infatti vengono allocate nello \itindex{stack} \textit{stack}, ed
 un'altra invocazione non fa altro che allocarne un'altra copia. Una funzione
 può non essere rientrante quando opera su memoria che non è nello
 \itindex{stack} \textit{stack}.  Ad esempio una funzione non è mai rientrante
 un'altra invocazione non fa altro che allocarne un'altra copia. Una funzione
 può non essere rientrante quando opera su memoria che non è nello
 \itindex{stack} \textit{stack}.  Ad esempio una funzione non è mai rientrante
-se usa una variabile globale o statica.
+se usa una \index{variabili!globali} variabile globale o
+\index{variabili!statiche} statica.
 
 Nel caso invece la funzione operi su un oggetto allocato dinamicamente, la
 cosa viene a dipendere da come avvengono le operazioni: se l'oggetto è creato
 
 Nel caso invece la funzione operi su un oggetto allocato dinamicamente, la
 cosa viene a dipendere da come avvengono le operazioni: se l'oggetto è creato
@@ -3894,12 +3895,12 @@ se viene passato lo stesso oggetto; in tutti questi casi occorre molta cura da
 parte del programmatore.
 
 In genere le funzioni di libreria non sono rientranti, molte di esse ad
 parte del programmatore.
 
 In genere le funzioni di libreria non sono rientranti, molte di esse ad
-esempio utilizzano variabili statiche, le \acr{glibc} però mettono a
-disposizione due macro di compilatore,\footnote{si ricordi quanto illustrato
-  in sez.~\ref{sec:intro_gcc_glibc_std}.} \macro{\_REENTRANT} e
-\macro{\_THREAD\_SAFE}, la cui definizione attiva le versioni rientranti di
-varie funzioni di libreria, che sono identificate aggiungendo il suffisso
-\code{\_r} al nome della versione normale.
+esempio utilizzano \index{variabili!statiche} variabili statiche, le
+\acr{glibc} però mettono a disposizione due macro di compilatore,\footnote{si
+  ricordi quanto illustrato in sez.~\ref{sec:intro_gcc_glibc_std}.}
+\macro{\_REENTRANT} e \macro{\_THREAD\_SAFE}, la cui definizione attiva le
+versioni rientranti di varie funzioni di libreria, che sono identificate
+aggiungendo il suffisso \code{\_r} al nome della versione normale.
 
 \index{funzioni!rientranti|)}
 
 
 \index{funzioni!rientranti|)}