Reindicizzazioni
[gapil.git] / system.tex
index 031892523c6d0ece520d31735e464c8c82bb92c5..9e6abaf13bd26f79ab8054994b3b46ed1f4de5aa 100644 (file)
@@ -166,7 +166,7 @@ sez.~\ref{sec:sys_file_limits}.
     \const{STREAM\_MAX}&   8& Massimo numero di stream aperti per
                               processo in contemporanea.\\
     \const{TZNAME\_MAX}&   6& Dimensione massima del nome di una
     \const{STREAM\_MAX}&   8& Massimo numero di stream aperti per
                               processo in contemporanea.\\
     \const{TZNAME\_MAX}&   6& Dimensione massima del nome di una
-                              \itindex{timezone} \textit{timezone} (vedi
+                              \textit{timezone} (vedi
                               sez.~\ref{sec:sys_time_base})).\\  
     \const{NGROUPS\_MAX}& 32& Numero di gruppi supplementari per
                               processo (vedi sez.~\ref{sec:proc_access_id}).\\
                               sez.~\ref{sec:sys_time_base})).\\  
     \const{NGROUPS\_MAX}& 32& Numero di gruppi supplementari per
                               processo (vedi sez.~\ref{sec:proc_access_id}).\\
@@ -204,7 +204,7 @@ file, riportate in tab.~\ref{tab:sys_file_macro}.
     \const{\_POSIX\_STREAM\_MAX} &    8& Massimo numero di stream aperti per
                                          processo in contemporanea.\\
     \const{\_POSIX\_TZNAME\_MAX} &    6& Dimensione massima del nome di una
     \const{\_POSIX\_STREAM\_MAX} &    8& Massimo numero di stream aperti per
                                          processo in contemporanea.\\
     \const{\_POSIX\_TZNAME\_MAX} &    6& Dimensione massima del nome di una
-                                         \itindex{timezone} \textit{timezone}
+                                         \textit{timezone}
                                          (vedi sez.~\ref{sec:sys_date}). \\ 
     \const{\_POSIX\_RTSIG\_MAX}  &    8& Numero massimo di segnali
                                          \textit{real-time} (vedi
                                          (vedi sez.~\ref{sec:sys_date}). \\ 
     \const{\_POSIX\_RTSIG\_MAX}  &    8& Numero massimo di segnali
                                          \textit{real-time} (vedi
@@ -334,7 +334,7 @@ relative spiegazioni, si può trovare nel manuale delle \acr{glibc}.
                                   che specifica la macro {FOPEN\_MAX}.\\
       \texttt{\_SC\_TZNAME\_MAX}& \const{TZNAME\_MAX}&
                                   La dimensione massima di un nome di una
                                   che specifica la macro {FOPEN\_MAX}.\\
       \texttt{\_SC\_TZNAME\_MAX}& \const{TZNAME\_MAX}&
                                   La dimensione massima di un nome di una
-                                  \itindex{timezone} \texttt{timezone} (vedi
+                                  \texttt{timezone} (vedi
                                   sez.~\ref{sec:sys_date}).\\
       \texttt{\_SC\_NGROUPS\_MAX}&\const{NGROUP\_MAX}&
                                   Massimo numero di gruppi supplementari che
                                   sez.~\ref{sec:sys_date}).\\
       \texttt{\_SC\_NGROUPS\_MAX}&\const{NGROUP\_MAX}&
                                   Massimo numero di gruppi supplementari che
@@ -714,9 +714,9 @@ informazioni degli utenti e dei gruppi per insiemi di macchine e servizi
 all'interno di una stessa organizzazione, in modo da mantenere coerenti i
 dati, ha portato anche alla necessità di poter recuperare e memorizzare dette
 informazioni su supporti diversi dai file citati, introducendo il sistema del
 all'interno di una stessa organizzazione, in modo da mantenere coerenti i
 dati, ha portato anche alla necessità di poter recuperare e memorizzare dette
 informazioni su supporti diversi dai file citati, introducendo il sistema del
-\itindex{Name~Service~Switch~(NSS)} \textit{Name Service Switch} (che
-tratteremo brevemente in sez.~\ref{sec:sock_resolver}) dato che la sua
-applicazione è cruciale nella procedura di risoluzione di nomi di rete.
+\textit{Name Service Switch} (che tratteremo brevemente in
+sez.~\ref{sec:sock_resolver}) dato che la sua applicazione è cruciale nella
+procedura di risoluzione di nomi di rete.
 
 In questo paragrafo ci limiteremo comunque a trattare le funzioni classiche
 per la lettura delle informazioni relative a utenti e gruppi tralasciando
 
 In questo paragrafo ci limiteremo comunque a trattare le funzioni classiche
 per la lettura delle informazioni relative a utenti e gruppi tralasciando
@@ -1547,10 +1547,9 @@ dell'esaurimento della propria \textit{time-slice} (in genere a causa di una
 interrotto da un processo a priorità maggiore. I campi \var{ru\_inblock} e
 \var{ru\_oublock} indicano invece il numero di volte che è stata eseguita una
 attività di I/O su un filesystem (rispettivamente in lettura e scrittura) ed
 interrotto da un processo a priorità maggiore. I campi \var{ru\_inblock} e
 \var{ru\_oublock} indicano invece il numero di volte che è stata eseguita una
 attività di I/O su un filesystem (rispettivamente in lettura e scrittura) ed
-infine \var{ru\_maxrss} indica il valore più alto della
-\itindex{Resident~Set~Size~(RSS)} \textit{Resident Set Size} raggiunto dal
-processo stesso o, nel caso sia stato usato \const{RUSAGE\_CHILDREN}, da uno
-dei suoi figli.
+infine \var{ru\_maxrss} indica il valore più alto della \textit{Resident Set
+  Size} raggiunto dal processo stesso o, nel caso sia stato usato
+\const{RUSAGE\_CHILDREN}, da uno dei suoi figli.
  
 Si tenga conto che per un errore di implementazione nei i kernel precedenti il
 2.6.9, nonostante questo fosse esplicitamente proibito dallo standard POSIX.1,
  
 Si tenga conto che per un errore di implementazione nei i kernel precedenti il
 2.6.9, nonostante questo fosse esplicitamente proibito dallo standard POSIX.1,
@@ -1700,10 +1699,10 @@ riportati nel seguente elenco:
   con un errore di \errcode{EFBIG}.
 
 \item[\const{RLIMIT\_LOCKS}] Questa risorsa indica il numero massimo di
   con un errore di \errcode{EFBIG}.
 
 \item[\const{RLIMIT\_LOCKS}] Questa risorsa indica il numero massimo di
-  \itindex{file~locking} \textit{file lock} (vedi sez.~\ref{sec:file_locking})
-  e di \textit{file lease} (vedi sez.~\ref{sec:file_asyncronous_lease}) che un
-  processo poteva effettuare.  È un limite presente solo nelle prime versioni
-  del kernel 2.4, pertanto non deve essere più utilizzato.
+  \textit{file lock} (vedi sez.~\ref{sec:file_locking}) e di \textit{file
+    lease} (vedi sez.~\ref{sec:file_asyncronous_lease}) che un processo poteva
+  effettuare.  È un limite presente solo nelle prime versioni del kernel 2.4,
+  pertanto non deve essere più utilizzato.
 
 \item[\const{RLIMIT\_MEMLOCK}] Questa risorsa indica, in byte, l'ammontare
   massimo di memoria che può essere bloccata in RAM da un processo (vedi
 
 \item[\const{RLIMIT\_MEMLOCK}] Questa risorsa indica, in byte, l'ammontare
   massimo di memoria che può essere bloccata in RAM da un processo (vedi
@@ -2047,6 +2046,7 @@ gestione di data e ora.
 \label{sec:sys_unix_time}
 
 \itindbeg{calendar~time}
 \label{sec:sys_unix_time}
 
 \itindbeg{calendar~time}
+\itindbeg{process~time}
 
 Tradizionalmente nei sistemi unix-like sono sempre stati previsti due tipi
 distinti di tempi, caratterizzati da altrettante modalità di misura ed
 
 Tradizionalmente nei sistemi unix-like sono sempre stati previsti due tipi
 distinti di tempi, caratterizzati da altrettante modalità di misura ed
@@ -2062,14 +2062,13 @@ espressi con diversi tipi di dati, chiamati rispettivamente \textit{calendar
   tradizionalmente misurato in secondi a partire dalla mezzanotte del
   primo gennaio 1970, data che viene chiamata \textit{the Epoch}.
 
   tradizionalmente misurato in secondi a partire dalla mezzanotte del
   primo gennaio 1970, data che viene chiamata \textit{the Epoch}.
 
-\item[\textit{process time}] \itindex{process~time} detto anche \textsl{tempo
-    di processore} o \textsl{tempo di CPU}. Si tratta del tempo impiegato da
-  un processore nell'esecuzione del codice di un programma all'interno di un
-  processo. Per esprimere questo tempo è stato riservato il tipo
-  \type{clock\_t}, e viene misurato nei cosiddetti \itindex{clock~tick}
-  \textit{clock tick}, tradizionalmente corrispondenti al numero di
-  interruzioni del processore da parte del timer di sistema. A differenza del
-  precedente indica soltanto un intervallo di durata.
+\item[\textit{process time}] detto anche \textsl{tempo di processore} o
+  \textsl{tempo di CPU}. Si tratta del tempo impiegato da un processore
+  nell'esecuzione del codice di un programma all'interno di un processo. Per
+  esprimere questo tempo è stato riservato il tipo \type{clock\_t}, e viene
+  misurato nei cosiddetti \textit{clock tick}, tradizionalmente corrispondenti
+  al numero di interruzioni del processore da parte del timer di sistema. A
+  differenza del precedente indica soltanto un intervallo di durata.
 \end{basedescript}
 
 Il \textit{calendar time} viene sempre mantenuto facendo riferimento
 \end{basedescript}
 
 Il \textit{calendar time} viene sempre mantenuto facendo riferimento
@@ -2104,11 +2103,10 @@ in presenza di cambi di fusi orari.
 
 \itindend{calendar~time}
 
 
 \itindend{calendar~time}
 
-Il \itindex{process~time} \textit{process time} invece indica sempre una
-misura di un lasso di tempo e viene usato per tenere conto dei tempi di
-esecuzione dei processi. Esso viene sempre diviso in \textit{user time} e
-\textit{system time}, per misurare la durata di ciascun processo il kernel
-infatti calcola tre tempi:
+Il \textit{process time} invece indica sempre una misura di un lasso di tempo
+e viene usato per tenere conto dei tempi di esecuzione dei processi. Esso
+viene sempre diviso in \textit{user time} e \textit{system time}, per misurare
+la durata di ciascun processo il kernel infatti calcola tre tempi:
 \begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}}
 \item[\textit{clock time}] il tempo \textsl{reale}, viene chiamato anche
   \textit{wall clock time} o \textit{elapsed time}, passato dall'avvio del
 \begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}}
 \item[\textit{clock time}] il tempo \textsl{reale}, viene chiamato anche
   \textit{wall clock time} o \textit{elapsed time}, passato dall'avvio del
@@ -2135,6 +2133,7 @@ processo. Si può ottenere un riassunto dei valori di questi tempi quando si
 esegue un qualsiasi programma lanciando quest'ultimo come argomento del
 comando \cmd{time}.
 
 esegue un qualsiasi programma lanciando quest'ultimo come argomento del
 comando \cmd{time}.
 
+\itindend{process~time}
 \itindbeg{clock~tick}
 
 Come accennato il \textit{process time} viene misurato nei cosiddetti
 \itindbeg{clock~tick}
 
 Come accennato il \textit{process time} viene misurato nei cosiddetti
@@ -2156,6 +2155,7 @@ definito in \headfile{time.h} è ormai considerato obsoleto e non deve essere
 usato.
 
 \constbeg{HZ}
 usato.
 
 \constbeg{HZ}
+
 In realtà tutti calcoli dei tempi vengono effettuati dal kernel per il
 cosiddetto \textit{software clock}, utilizzando il \textit{timer di sistema} e
 facendo i conti in base al numero delle interruzioni generate dello stesso, i
 In realtà tutti calcoli dei tempi vengono effettuati dal kernel per il
 cosiddetto \textit{software clock}, utilizzando il \textit{timer di sistema} e
 facendo i conti in base al numero delle interruzioni generate dello stesso, i
@@ -2179,10 +2179,9 @@ costante del kernel \const{USER\_HZ}.
 Fino al kernel 2.6.21 la durata di un \textit{jiffy} costituiva la risoluzione
 massima ottenibile nella misura dei tempi impiegabile in una \textit{system
   call} (ad esempio per i timeout). Con il 2.6.21 e l'introduzione degli
 Fino al kernel 2.6.21 la durata di un \textit{jiffy} costituiva la risoluzione
 massima ottenibile nella misura dei tempi impiegabile in una \textit{system
   call} (ad esempio per i timeout). Con il 2.6.21 e l'introduzione degli
-\itindex{High~Resolution~Timer~(HRT)} \textit{high-resolution timers} (HRT) è
-divenuto possibile ottenere, per le funzioni di attesa ed i timer, la massima
-risoluzione possibile fornita dall'hardware. Torneremo su questo in
-sez.~\ref{sec:sig_timer_adv}.
+\textit{high-resolution timers} (HRT) è divenuto possibile ottenere, per le
+funzioni di attesa ed i timer, la massima risoluzione possibile fornita
+dall'hardware. Torneremo su questo in sez.~\ref{sec:sig_timer_adv}.
 
 \itindend{clock~tick}
 
 
 \itindend{clock~tick}
 
@@ -2190,8 +2189,6 @@ sez.~\ref{sec:sig_timer_adv}.
 \subsection{La gestione del \textit{process time}}
 \label{sec:sys_cpu_times}
 
 \subsection{La gestione del \textit{process time}}
 \label{sec:sys_cpu_times}
 
-\itindbeg{process~time}
-
 Di norma tutte le operazioni del sistema fanno sempre riferimento al
 \textit{calendar time}, l'uso del \textit{process time} è riservato a
 quei casi in cui serve conoscere i tempi di esecuzione di un processo
 Di norma tutte le operazioni del sistema fanno sempre riferimento al
 \textit{calendar time}, l'uso del \textit{process time} è riservato a
 quei casi in cui serve conoscere i tempi di esecuzione di un processo
@@ -2324,8 +2321,6 @@ indicando un errore, nei primi secondi dopo il boot (per la precisione nei
 primi 41 secondi) e se il valore del contatore eccede le dimensione del tipo
 \type{clock\_t}.
 
 primi 41 secondi) e se il valore del contatore eccede le dimensione del tipo
 \type{clock\_t}.
 
-\itindend{process~time}
-
 
 \subsection{Le funzioni per il \textit{calendar time}}
 \label{sec:sys_time_base}
 
 \subsection{Le funzioni per il \textit{calendar time}}
 \label{sec:sys_time_base}
@@ -2417,15 +2412,19 @@ capacità \const{CAP\_SYS\_TIME}. Si tratta comunque di una condizione generale
 che continua a valere per qualunque funzione che vada a modificare l'orologio
 di sistema, comprese tutte quelle che tratteremo in seguito.
 
 che continua a valere per qualunque funzione che vada a modificare l'orologio
 di sistema, comprese tutte quelle che tratteremo in seguito.
 
+\itindbeg{timezone}
+
 Il secondo argomento di entrambe le funzioni è una struttura
 \struct{timezone}, che storicamente veniva utilizzata per specificare appunto
 Il secondo argomento di entrambe le funzioni è una struttura
 \struct{timezone}, che storicamente veniva utilizzata per specificare appunto
-la \itindex{timezone} \textit{timezone}, cioè l'insieme del fuso orario e
-delle convenzioni per l'ora legale che permettevano il passaggio dal tempo
+la cosiddetta \textit{timezone}, cioè l'insieme del fuso orario e delle
+convenzioni per l'ora legale che permettevano il passaggio dal tempo
 universale all'ora locale. Questo argomento oggi è obsoleto ed in Linux non è
 mai stato utilizzato; esso non è supportato né dalle vecchie \textsl{libc5},
 né dalle \textsl{glibc}: pertanto quando si chiama questa funzione deve essere
 sempre impostato a \val{NULL}.
 
 universale all'ora locale. Questo argomento oggi è obsoleto ed in Linux non è
 mai stato utilizzato; esso non è supportato né dalle vecchie \textsl{libc5},
 né dalle \textsl{glibc}: pertanto quando si chiama questa funzione deve essere
 sempre impostato a \val{NULL}.
 
+\itindbeg{timezone}
+
 Modificare l'orologio di sistema con queste funzioni è comunque problematico,
 in quanto esse effettuano un cambiamento immediato. Questo può creare dei
 buchi o delle ripetizioni nello scorrere dell'orologio di sistema, con
 Modificare l'orologio di sistema con queste funzioni è comunque problematico,
 in quanto esse effettuano un cambiamento immediato. Questo può creare dei
 buchi o delle ripetizioni nello scorrere dell'orologio di sistema, con
@@ -2617,11 +2616,10 @@ sintassi specificata per la forma equivalente di questa funzione definita come
 \code{ADJ}.
 
 Si tenga presente infine che con l'introduzione a partire dal kernel 2.6.21
 \code{ADJ}.
 
 Si tenga presente infine che con l'introduzione a partire dal kernel 2.6.21
-degli \itindex{High~Resolution~Timer~(HRT)} \textit{high-resolution timer} ed
-il supporto per i cosiddetti POSIX \textit{real-time clock}, si può ottenere
-il \textit{calendar time} direttamente da questi, come vedremo in
-sez.~\ref{sec:sig_timer_adv}, con la massima risoluzione possibile per
-l'hardware della macchina.
+degli \textit{high-resolution timer} ed il supporto per i cosiddetti POSIX
+\textit{real-time clock}, si può ottenere il \textit{calendar time}
+direttamente da questi, come vedremo in sez.~\ref{sec:sig_timer_adv}, con la
+massima risoluzione possibile per l'hardware della macchina.
 
 
 
 
 
 
@@ -2712,9 +2710,9 @@ Sun Apr 29 19:47:44 2012\n"
 \end{Example}
 
 Nel caso di \func{ctime} la funzione tiene conto della eventuale impostazione
 \end{Example}
 
 Nel caso di \func{ctime} la funzione tiene conto della eventuale impostazione
-di una \itindex{timezone} \textit{timezone} e effettua una chiamata preventiva
-a \func{tzset} (che vedremo a breve), in modo che la data espressa tenga conto
-del fuso orario. In realtà \func{ctime} è banalmente definita in termini di
+di una \textit{timezone} e effettua una chiamata preventiva a \func{tzset}
+(che vedremo a breve), in modo che la data espressa tenga conto del fuso
+orario. In realtà \func{ctime} è banalmente definita in termini di
 \func{asctime} come \code{asctime(localtime(t)}.
 
 Dato che l'uso di una stringa statica rende le funzioni non rientranti
 \func{asctime} come \code{asctime(localtime(t)}.
 
 Dato che l'uso di una stringa statica rende le funzioni non rientranti
@@ -2790,7 +2788,7 @@ della variabile globale \var{tzname}.
     \includestruct{listati/time_zone_var.c}
   \end{minipage} 
   \normalsize 
     \includestruct{listati/time_zone_var.c}
   \end{minipage} 
   \normalsize 
-  \caption{Le variabili globali usate per la gestione delle \itindex{timezone}
+  \caption{Le variabili globali usate per la gestione delle
     \textit{timezone}.}
   \label{fig:sys_tzname}
 \end{figure}
     \textit{timezone}.}
   \label{fig:sys_tzname}
 \end{figure}
@@ -2798,12 +2796,12 @@ della variabile globale \var{tzname}.
 Come accennato l'uso del \textit{broken-down time} permette di tenere conto
 anche della differenza fra tempo universale e ora locale, compresa l'eventuale
 ora legale.  Questo viene fatto dalle funzioni di conversione grazie alle
 Come accennato l'uso del \textit{broken-down time} permette di tenere conto
 anche della differenza fra tempo universale e ora locale, compresa l'eventuale
 ora legale.  Questo viene fatto dalle funzioni di conversione grazie alle
-informazioni riguardo la propria \itindex{timezone} \textit{timezone}
-mantenute nelle tre variabili globali mostrate in fig.~\ref{fig:sys_tzname},
-cui si si può accedere direttamente includendo \headfile{time.h}. Come
-illustrato queste variabili vengono impostate internamente da alcune delle
-delle precedenti funzioni di conversione, ma lo si può fare esplicitamente
-chiamando direttamente la funzione \funcd{tzset}, il cui prototipo è:
+informazioni riguardo la propria \textit{timezone} mantenute nelle tre
+variabili globali mostrate in fig.~\ref{fig:sys_tzname}, cui si si può
+accedere direttamente includendo \headfile{time.h}. Come illustrato queste
+variabili vengono impostate internamente da alcune delle delle precedenti
+funzioni di conversione, ma lo si può fare esplicitamente chiamando
+direttamente la funzione \funcd{tzset}, il cui prototipo è:
 
 \begin{funcproto}{
 \fhead{time.h}
 
 \begin{funcproto}{
 \fhead{time.h}
@@ -2818,11 +2816,11 @@ La funzione inizializza le variabili di fig.~\ref{fig:sys_tzname} a partire
 dal valore della variabile di ambiente \envvar{TZ}, se quest'ultima non è
 definita verrà usato il file \conffiled{/etc/localtime}. La variabile
 \var{tzname} contiene due stringhe, che indicano i due nomi standard della
 dal valore della variabile di ambiente \envvar{TZ}, se quest'ultima non è
 definita verrà usato il file \conffiled{/etc/localtime}. La variabile
 \var{tzname} contiene due stringhe, che indicano i due nomi standard della
-\itindex{timezone} \textit{timezone} corrente. La prima è il nome per l'ora
-solare, la seconda per l'ora legale. Anche se in fig.~\ref{fig:sys_tzname}
-sono indicate come \code{char *} non è il caso di modificare queste
-stringhe. La variabile \var{timezone} indica la differenza di fuso orario in
-secondi, mentre \var{daylight} indica se è attiva o meno l'ora legale.
+\textit{timezone} corrente. La prima è il nome per l'ora solare, la seconda
+per l'ora legale. Anche se in fig.~\ref{fig:sys_tzname} sono indicate come
+\code{char *} non è il caso di modificare queste stringhe. La variabile
+\var{timezone} indica la differenza di fuso orario in secondi, mentre
+\var{daylight} indica se è attiva o meno l'ora legale.
 
 Benché la funzione \func{asctime} fornisca la modalità più immediata per
 stampare un tempo o una data, la flessibilità non fa parte delle sue
 
 Benché la funzione \func{asctime} fornisca la modalità più immediata per
 stampare un tempo o una data, la flessibilità non fa parte delle sue
@@ -2881,8 +2879,7 @@ lo stato di \param{s} è indefinito.
     \var{\%X}&\texttt{18:40:50}   & L'ora.\\ 
     \var{\%y}&\texttt{02}         & Anno nel secolo.\\ 
     \var{\%Y}&\texttt{2002}       & Anno.\\ 
     \var{\%X}&\texttt{18:40:50}   & L'ora.\\ 
     \var{\%y}&\texttt{02}         & Anno nel secolo.\\ 
     \var{\%Y}&\texttt{2002}       & Anno.\\ 
-    \var{\%Z}&\texttt{CEST}       & Nome della \itindex{timezone}
-                                    \textit{timezone}.\\  
+    \var{\%Z}&\texttt{CEST}       & Nome della \textit{timezone}.\\  
     \var{\%\%}&\texttt{\%}        & Il carattere \%.\\ 
     \hline
   \end{tabular}
     \var{\%\%}&\texttt{\%}        & Il carattere \%.\\ 
     \hline
   \end{tabular}
@@ -2949,7 +2946,7 @@ un errore nell'esecuzione di una funzione, ma di norma questo viene riportato
 semplicemente usando un opportuno valore di ritorno della funzione invocata.
 Inoltre il sistema di classificazione degli errori è stato progettato
 sull'architettura a processi, e presenta una serie di problemi nel caso lo si
 semplicemente usando un opportuno valore di ritorno della funzione invocata.
 Inoltre il sistema di classificazione degli errori è stato progettato
 sull'architettura a processi, e presenta una serie di problemi nel caso lo si
-debba usare con i \itindex{thread} \textit{thread}.
+debba usare con i \textit{thread}.
 
 
 \subsection{La variabile \var{errno}}
 
 
 \subsection{La variabile \var{errno}}
@@ -2967,11 +2964,11 @@ che c'è stato un errore, e non il tipo di errore.
 
 Per riportare il tipo di errore il sistema usa la variabile globale
 \var{errno}, definita nell'header \headfile{errno.h}.  Come accennato l'uso di
 
 Per riportare il tipo di errore il sistema usa la variabile globale
 \var{errno}, definita nell'header \headfile{errno.h}.  Come accennato l'uso di
-una variabile globale può comportare problemi nel caso dei \itindex{thread}
-\textit{thread}, ma lo standard ISO C consente anche di definire \var{errno}
-come un cosiddetto ``\textit{modifiable lvalue}'', cosa che consente di usare
-anche una macro, e questo è infatti il metodo usato da Linux per renderla
-locale ai singoli \itindex{thread} \textit{thread}.
+una variabile globale può comportare problemi nel caso dei \textit{thread}, ma
+lo standard ISO C consente anche di definire \var{errno} come un cosiddetto
+``\textit{modifiable lvalue}'', cosa che consente di usare anche una macro, e
+questo è infatti il metodo usato da Linux per renderla locale ai singoli
+\textit{thread}.
 
 La variabile è in genere definita come \dirct{volatile} dato che può essere
 cambiata in modo asincrono da un segnale, per un esempio si veda
 
 La variabile è in genere definita come \dirct{volatile} dato che può essere
 cambiata in modo asincrono da un segnale, per un esempio si veda
@@ -3044,9 +3041,9 @@ La funzione \func{strerror} utilizza una stringa statica che non deve essere
 modificata dal programma; essa è utilizzabile solo fino ad una chiamata
 successiva a \func{strerror} o \func{perror} e nessun'altra funzione di
 libreria tocca questa stringa. In ogni caso l'uso di una stringa statica rende
 modificata dal programma; essa è utilizzabile solo fino ad una chiamata
 successiva a \func{strerror} o \func{perror} e nessun'altra funzione di
 libreria tocca questa stringa. In ogni caso l'uso di una stringa statica rende
-la funzione non rientrante, per cui nel caso si usino i \itindex{thread}
-\textit{thread} la \acr{glibc} fornisce una apposita versione rientrante
-\funcd{strerror\_r}, il cui prototipo è:
+la funzione non rientrante, per cui nel caso si usino i \textit{thread} la
+\acr{glibc} fornisce una apposita versione rientrante \funcd{strerror\_r}, il
+cui prototipo è:
 
 \begin{funcproto}{
 \fhead{string.h}
 
 \begin{funcproto}{
 \fhead{string.h}
@@ -3073,10 +3070,10 @@ restituita a \param{size}, a cui si accede definendo le opportune macro (per
 le quali si rimanda alla lettura della pagina di manuale). 
 
 La funzione è analoga a \func{strerror} ma restituisce la stringa di errore
 le quali si rimanda alla lettura della pagina di manuale). 
 
 La funzione è analoga a \func{strerror} ma restituisce la stringa di errore
-nel buffer \param{buf} che il singolo \itindex{thread} \textit{thread} deve
-allocare autonomamente per evitare i problemi connessi alla condivisione del
-buffer statico. Il messaggio è copiato fino alla dimensione massima del
-buffer, specificata dall'argomento \param{size}, che deve comprendere pure il
+nel buffer \param{buf} che il singolo \textit{thread} deve allocare
+autonomamente per evitare i problemi connessi alla condivisione del buffer
+statico. Il messaggio è copiato fino alla dimensione massima del buffer,
+specificata dall'argomento \param{size}, che deve comprendere pure il
 carattere di terminazione; altrimenti la stringa risulterà troncata.
 
 Una seconda funzione usata per riportare i codici di errore in maniera
 carattere di terminazione; altrimenti la stringa risulterà troncata.
 
 Una seconda funzione usata per riportare i codici di errore in maniera