Inserite nuove macro per la indicizzazione della definizione delle funzioni
[gapil.git] / system.tex
index f6e6d50d0e31728fc10ae938fed98292ef6fdf0e..69d6036231267f1956bd5c1e17b253e43dd87a67 100644 (file)
@@ -84,7 +84,7 @@ avere un valore minimo di 8.
   \footnotesize
   \begin{tabular}[c]{|l|r|l|}
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \const{MB\_LEN\_MAX}&       16  & massima dimensione di un 
@@ -126,7 +126,7 @@ A questi valori lo standard ISO C90 ne aggiunge altri tre, relativi al tipo
   \footnotesize
   \begin{tabular}[c]{|l|r|l|}
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \const{LLONG\_MAX}& 9223372036854775807& massimo di \ctyp{long long}\\
@@ -159,7 +159,7 @@ file, riportate in \tabref{tab:sys_file_macro}).
   \footnotesize
   \begin{tabular}[c]{|l|r|p{8cm}|}
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \const{ARG\_MAX} &131072& dimensione massima degli argomenti
@@ -203,7 +203,7 @@ riportati in \tabref{tab:sys_posix1_general}.
   \footnotesize
   \begin{tabular}[c]{|l|r|p{8cm}|}
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \const{\_POSIX\_ARG\_MAX}    & 4096& dimensione massima degli argomenti
@@ -249,10 +249,10 @@ valori ottenuti da \func{sysconf}.
     \textbf{Macro}&\textbf{Significato}\\
     \hline
     \hline
-    \const{\_POSIX\_JOB\_CONTROL}& il sistema supporta il 
+    \macro{\_POSIX\_JOB\_CONTROL}& il sistema supporta il 
                                    \textit{job control} (vedi 
                                    \secref{sec:sess_job_control}).\\
-    \const{\_POSIX\_SAVED\_IDS}  & il sistema supporta gli identificatori del 
+    \macro{\_POSIX\_SAVED\_IDS}  & il sistema supporta gli identificatori del 
                                    gruppo \textit{saved} (vedi 
                                    \secref{sec:proc_access_id})
                                    per il controllo di accesso dei processi\\
@@ -340,10 +340,10 @@ relative spiegazioni, si pu
       \texttt{\_SC\_CLK\_TCK}& \const{CLK\_TCK} &
       Il numero di \textit{clock tick} al secondo, cioè l'unità di misura del
       \textit{process time} (vedi \secref{sec:sys_unix_time}).\\
-      \texttt{\_SC\_JOB\_CONTROL}&\const{\_POSIX\_JOB\_CONTROL}&
+      \texttt{\_SC\_JOB\_CONTROL}&\macro{\_POSIX\_JOB\_CONTROL}&
       Indica se è supportato il \textit{job control} (vedi
       \secref{sec:sess_job_control}) in stile POSIX.\\
-      \texttt{\_SC\_SAVED\_IDS}&\const{\_POSIX\_SAVED\_IDS}&
+      \texttt{\_SC\_SAVED\_IDS}&\macro{\_POSIX\_SAVED\_IDS}&
       Indica se il sistema supporta i \textit{saved id} (vedi
       \secref{sec:proc_access_id}).\\ 
       \texttt{\_SC\_VERSION}& \const{\_POSIX\_VERSION} &
@@ -400,7 +400,7 @@ riportate in \tabref{tab:sys_file_macro}.
   \footnotesize
   \begin{tabular}[c]{|l|r|l|}
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline                
     \const{LINK\_MAX}   &8  & numero massimo di link a un file\\
@@ -414,7 +414,7 @@ riportate in \tabref{tab:sys_file_macro}.
                               del terminale (vedi \secref{sec:term_design}).\\
     \hline                
   \end{tabular}
-  \caption{Macro per i limiti sulle caratteristiche dei file.}
+  \caption{Costanti per i limiti sulle caratteristiche dei file.}
   \label{tab:sys_file_macro}
 \end{table}
 
@@ -447,7 +447,7 @@ analoghe di \tabref{tab:sys_posix1_general}.
 %    \const{\_POSIX\_DELAYTIMER\_MAX}& 32 & \\
     \hline
   \end{tabular}
-  \caption{Macro dei valori minimi delle caratteristiche dei file per la
+  \caption{Costanti dei valori minimi delle caratteristiche dei file per la
     conformità allo standard POSIX.1.}
   \label{tab:sys_posix1_file}
 \end{table}
@@ -498,7 +498,7 @@ suo prototipo 
   Restituisce informazioni sul sistema nella struttura \param{info}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} assumerà il valore \const{EFAULT}.}
+    fallimento, nel qual caso \var{errno} assumerà il valore \errval{EFAULT}.}
 \end{prototype}
 
 La funzione, che viene usata dal comando \cmd{uname}, restituisce le
@@ -516,7 +516,7 @@ indicano rispettivamente:
 \end{itemize*}
 l'ultima informazione è stata aggiunta di recente e non è prevista dallo
 standard POSIX, essa è accessibile, come mostrato in \figref{fig:sys_utsname},
-solo definendo \const{\_GNU\_SOURCE}.
+solo definendo \macro{\_GNU\_SOURCE}.
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -535,21 +535,21 @@ struct utsname {
   \end{lstlisting}
   \end{minipage}
   \normalsize 
-  \caption{La struttura \var{utsname}.} 
+  \caption{La struttura \structd{utsname}.} 
   \label{fig:sys_utsname}
 \end{figure}
 
 In generale si tenga presente che le dimensioni delle stringe di una
-\var{utsname} non è specificata, e che esse sono sempre terminate con
-\val{null}; il manuale delle \acr{glibc} indica due diverse dimensioni,
+\struct{utsname} non è specificata, e che esse sono sempre terminate con NUL;
+il manuale delle \acr{glibc} indica due diverse dimensioni,
 \const{\_UTSNAME\_LENGTH} per i campi standard e
 \const{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio;
 altri sistemi usano nomi diversi come \const{SYS\_NMLN} o \const{\_SYS\_NMLN}
 o \const{UTSLEN} che possono avere valori diversi.\footnote{Nel caso di Linux
-\func{uname} corrisponde in realtà a 3 system call diverse, le prime due usano
-rispettivamente delle lunghezze delle stringhe di 9 e 65 byte; la terza usa
-anch'essa 65 byte, ma restituisce anche l'ultimo campo, \var{domainname}, con
-una lunghezza di 257 byte.}
+  \func{uname} corrisponde in realtà a 3 system call diverse, le prime due
+  usano rispettivamente delle lunghezze delle stringhe di 9 e 65 byte; la
+  terza usa anch'essa 65 byte, ma restituisce anche l'ultimo campo,
+  \var{domainname}, con una lunghezza di 257 byte.}
 
 
 \section{Opzioni e configurazione del sistema}
@@ -601,7 +601,7 @@ Legge o scrive uno dei parametri di sistema.
     quando non si è specificato sufficiente spazio per ricevere il valore di un
     parametro.
   \end{errlist}
-  ed inoltre \const{EFAULT}.
+  ed inoltre \errval{EFAULT}.
 }
 \end{functions}
 
@@ -719,8 +719,8 @@ sulla directory \param{target}.
     sbagliato.
   \item[\errcode{EMFILE}] la tabella dei device \textit{dummy} è piena.
   \end{errlist}
-  ed inoltre \const{ENOTDIR}, \const{EFAULT}, \const{ENOMEM},
-  \const{ENAMETOOLONG}, \const{ENOENT} o \const{ELOOP}.}
+  ed inoltre \errval{ENOTDIR}, \errval{EFAULT}, \errval{ENOMEM},
+  \errval{ENAMETOOLONG}, \errval{ENOENT} o \errval{ELOOP}.}
 \end{prototype}
 
 La funzione monta sulla directory \param{target}, detta \textit{mount point},
@@ -825,8 +825,8 @@ Una volta che non si voglia pi
   \item[\errcode{EBUSY}]  \param{target} è la directory di lavoro di qualche
   processo, o contiene dei file aperti, o un altro mount point.
   \end{errlist}
-  ed inoltre \const{ENOTDIR}, \const{EFAULT}, \const{ENOMEM},
-  \const{ENAMETOOLONG}, \const{ENOENT} o \const{ELOOP}.}
+  ed inoltre \errval{ENOTDIR}, \errval{EFAULT}, \errval{ENOMEM},
+  \errval{ENAMETOOLONG}, \errval{ENOENT} o \errval{ELOOP}.}
 \end{prototype}
 \noindent la funzione prende il nome della directory su cui il filesystem è
 montato e non il file o il dispositivo che è stato montato,\footnote{questo è
@@ -879,19 +879,19 @@ informazioni riguardo al filesystem su cui si trova un certo file, sono
   \item[\errcode{ENOSYS}] il filesystem su cui si trova il file specificato non
   supporta la funzione.
   \end{errlist}
-  e \const{EFAULT} ed \const{EIO} per entrambe, \const{EBADF} per
-  \func{fstatfs}, \const{ENOTDIR}, \const{ENAMETOOLONG}, \const{ENOENT},
-  \const{EACCES}, \const{ELOOP} per \func{statfs}.}
+  e \errval{EFAULT} ed \errval{EIO} per entrambe, \errval{EBADF} per
+  \func{fstatfs}, \errval{ENOTDIR}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+  \errval{EACCES}, \errval{ELOOP} per \func{statfs}.}
 \end{functions}
 
 Queste funzioni permettono di ottenere una serie di informazioni generali
 riguardo al filesystem su cui si trova il file specificato; queste vengono
-restituite una struttura \param{buf} di tipo \type{statfs} definita come in
-\figref{fig:sys_statfs}, ed i campi che sono indefiniti per il filesystem in
-esame sono impostati a zero.  I valori del campo \var{f\_type} sono definiti
-per i vari filesystem nei relativi file di header dei sorgenti del kernel da
-costanti del tipo \var{XXX\_SUPER\_MAGIC}, dove \var{XXX} in genere è il
-nome del filesystem stesso.
+restituite all'indirizzo \param{buf} di una struttura \struct{statfs} definita
+come in \figref{fig:sys_statfs}, ed i campi che sono indefiniti per il
+filesystem in esame sono impostati a zero.  I valori del campo \var{f\_type}
+sono definiti per i vari filesystem nei relativi file di header dei sorgenti
+del kernel da costanti del tipo \var{XXX\_SUPER\_MAGIC}, dove \var{XXX} in
+genere è il nome del filesystem stesso.
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -903,8 +903,8 @@ struct statfs {
    long    f_blocks;   /* blocchi totali nel filesystem */
    long    f_bfree;    /* blocchi liberi nel filesystem */
    long    f_bavail;   /* blocchi liberi agli utenti normali */
-   long    f_files;    /* inodes totali nel filesystem */
-   long    f_ffree;    /* inodes liberi nel filesystem */
+   long    f_files;    /* inode totali nel filesystem */
+   long    f_ffree;    /* inode liberi nel filesystem */
    fsid_t  f_fsid;     /* filesystem id */
    long    f_namelen;  /* lunghezza massima dei nomi dei file */
    long    f_spare[6]; /* riservati per uso futuro */
@@ -912,18 +912,18 @@ struct statfs {
 \end{lstlisting}
   \end{minipage}
   \normalsize 
-  \caption{La struttura \var{statfs}.} 
+  \caption{La struttura \structd{statfs}.} 
   \label{fig:sys_statfs}
 \end{figure}
 
 
 Le \acr{glibc} provvedono infine una serie di funzioni per la gestione dei due
-file \file{/etc/fstab} ed \file{/etc/mtab}, che convenzionalmente sono usati in
-quasi tutti i sistemi unix-like per mantenere rispettivamente le informazioni
-riguardo ai filesystem da montare e a quelli correntemente montati. Le
-funzioni servono a leggere il contenuto di questi file in opportune strutture
-\var{struct fstab} e \var{struct mntent}, e, per \file{/etc/mtab} per inserire
-e rimuovere le voci presenti nel file.
+file \file{/etc/fstab} ed \file{/etc/mtab}, che convenzionalmente sono usati
+in quasi tutti i sistemi unix-like per mantenere rispettivamente le
+informazioni riguardo ai filesystem da montare e a quelli correntemente
+montati. Le funzioni servono a leggere il contenuto di questi file in
+opportune strutture \struct{fstab} e \struct{mntent}, e, per \file{/etc/mtab}
+per inserire e rimuovere le voci presenti nel file.
 
 In generale si dovrebbero usare queste funzioni (in particolare quelle
 relative a \file{/etc/mtab}), quando si debba scrivere un programma che
@@ -975,7 +975,7 @@ Le due funzioni forniscono le informazioni memorizzate nel database degli
 utenti (che nelle versioni più recenti possono essere ottenute attraverso PAM)
 relative all'utente specificato attraverso il suo \acr{uid} o il nome di
 login. Entrambe le funzioni restituiscono un puntatore ad una struttura di
-tipo \type{passwd} la cui definizione (anch'essa eseguita in \file{pwd.h}) è
+tipo \struct{passwd} la cui definizione (anch'essa eseguita in \file{pwd.h}) è
 riportata in \figref{fig:sys_passwd_struct}, dove è pure brevemente illustrato
 il significato dei vari campi. 
 
@@ -996,8 +996,8 @@ struct passwd {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{passwd} contenente le informazioni relative ad un
-    utente del sistema.}
+  \caption{La struttura \structd{passwd} contenente le informazioni relative ad
+    un utente del sistema.}
   \label{fig:sys_passwd_struct}
 \end{figure}
 
@@ -1026,15 +1026,15 @@ essere rientranti, per cui ne esistono anche due versioni alternative
 
 In questo caso l'uso è molto più complesso, in quanto bisogna prima allocare
 la memoria necessaria a contenere le informazioni. In particolare i valori
-della struttura \var{passwd} saranno restituiti all'indirizzo \param{password}
-mentre la memoria allocata all'indirizzo \param{buffer}, per un massimo di
-\param{buflen} byte, sarà utilizzata per contenere le stringhe puntate dai
-campi di \param{password}. Infine all'indirizzo puntato da \param{result}
-viene restituito il puntatore ai dati ottenuti, cioè \param{buffer} nel caso
-l'utente esista, o \val{null} altrimenti.  Qualora i dati non possano essere
-contenuti nei byte specificati da \param{buflen}, la funzione fallirà
-restituendo \errcode{ERANGE} (e \param{result} sarà comunque impostato a
-\val{null}).
+della struttura \struct{passwd} saranno restituiti all'indirizzo
+\param{password} mentre la memoria allocata all'indirizzo \param{buffer}, per
+un massimo di \param{buflen} byte, sarà utilizzata per contenere le stringhe
+puntate dai campi di \param{password}. Infine all'indirizzo puntato da
+\param{result} viene restituito il puntatore ai dati ottenuti, cioè
+\param{buffer} nel caso l'utente esista, o \val{null} altrimenti.  Qualora i
+dati non possano essere contenuti nei byte specificati da \param{buflen}, la
+funzione fallirà restituendo \errcode{ERANGE} (e \param{result} sarà comunque
+impostato a \val{null}).
 
 Del tutto analoghe alle precedenti sono le funzioni \func{getgrnam} e
 \func{getgrgid} (e le relative analoghe rientranti con la stessa estensione
@@ -1063,7 +1063,8 @@ loro prototipi sono:
 Il comportamento di tutte queste funzioni è assolutamente identico alle
 precedenti che leggono le informazioni sugli utenti, l'unica differenza è che
 in questo caso le informazioni vengono restituite in una struttura di tipo
-\type{group}, la cui definizione è riportata in \figref{fig:sys_group_struct}.
+\struct{group}, la cui definizione è riportata in
+\figref{fig:sys_group_struct}.
 
 \begin{figure}[!htb]
   \footnotesize
@@ -1079,8 +1080,8 @@ struct group {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{group} contenente le informazioni relative ad un
-    gruppo del sistema.}
+  \caption{La struttura \structd{group} contenente le informazioni relative ad
+    un gruppo del sistema.}
   \label{fig:sys_group_struct}
 \end{figure}
 
@@ -1223,12 +1224,12 @@ una voce con le funzioni \func{getutent}, \func{getutid}, \func{getutline} e
 
   \funcdecl{struct utmp *pututline(struct utmp *ut)} 
   Scrive una voce nel database.
-
-  \bodydesc{Le funzioni ritornano il puntatore ad una struttura \var{utmp} in
-    caso di successo e \val{null} in caso di errore.}
+  
+  \bodydesc{Le funzioni ritornano il puntatore ad una struttura \struct{utmp}
+    in caso di successo e \val{NULL} in caso di errore.}
 \end{functions}
 
-Tutte queste funzioni fanno riferimento ad una struttura di tipo \var{utmp},
+Tutte queste funzioni fanno riferimento ad una struttura di tipo \struct{utmp},
 la cui definizione in Linux è riportata in \secref{fig:sys_utmp_struct}. Le
 prime tre funzioni servono per leggere una voce dal database; \func{getutent}
 legge semplicemente la prima voce disponibile; le altre due permettono di
@@ -1257,8 +1258,8 @@ struct utmp
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{utmp} contenente le informazioni di una voce del
-    database di \textit{accounting}.}
+  \caption{La struttura \structd{utmp} contenente le informazioni di una voce
+    del database di \textit{accounting}.}
   \label{fig:sys_utmp_struct}
 \end{figure}
 
@@ -1276,7 +1277,7 @@ corrispondente al valore del campo \var{ut\_id} specificato in \param{ut}.
   \centering
   \begin{tabular}[c]{|l|p{8cm}|}
     \hline
-    \textbf{Funzione} & \textbf{Significato}\\
+    \textbf{Valore} & \textbf{Significato}\\
     \hline
     \hline
     \const{EMPTY}         & Non contiene informazioni valide. \\
@@ -1342,13 +1343,13 @@ prototipi sono:
   \funcdecl{void logwtmp(const char *line, const char *name, const char
     *host)} Aggiunge nel database di accounting una voce con i valori
   specificati.
-
-  \bodydesc{Le funzioni ritornano il puntatore ad una struttura \var{utmp} in
-    caso di successo e \val{null} in caso di errore.}
+  
+  \bodydesc{Le funzioni ritornano il puntatore ad una struttura \struct{utmp}
+    in caso di successo e \val{NULL} in caso di errore.}
 \end{functions}
 
 La prima funzione permette l'aggiunta di una voce a \file{wmtp} specificando
-direttamente una struttura \type{utmp}, mentre la seconda utilizza gli
+direttamente una struttura \struct{utmp}, mentre la seconda utilizza gli
 argomenti \param{line}, \param{name} e \param{host} per costruire la voce che
 poi aggiunge chiamando \func{updwtmp}.
 
@@ -1369,7 +1370,7 @@ permettono di imporre a ciascuno di essi vincoli e limiti di utilizzo.
 
 Come abbiamo accennato in \secref{sec:proc_wait4} le informazioni riguardo
 l'utilizzo delle risorse da parte di un processo è mantenuto in una struttura
-di tipo \code{struct }\type{rusage}, la cui definizione (che si trova in
+di tipo \struct{rusage}, la cui definizione (che si trova in
 \file{sys/resource.h}) è riportata in \figref{fig:sys_rusage_struct}.
 
 \begin{figure}[!htb]
@@ -1398,7 +1399,7 @@ struct rusage {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{rusage} per la lettura delle informazioni dei 
+  \caption{La struttura \structd{rusage} per la lettura delle informazioni dei 
     delle risorse usate da un processo.}
   \label{fig:sys_rusage_struct}
 \end{figure}
@@ -1420,8 +1421,8 @@ memoria per essere inserito nello swap.
 
 In genere includere esplicitamente \file{<sys/time.h>} non è più necessario,
 ma aumenta la portabilità, e serve comunque quando, come nella maggior parte
-dei casi, si debba accedere ai campi di \var{rusage} relativi ai tempi di
-utilizzo del processore, che sono definiti come \code{struct }\type{timeval}.
+dei casi, si debba accedere ai campi di \struct{rusage} relativi ai tempi di
+utilizzo del processore, che sono definiti come strutture \struct{timeval}.
 
 
 Questa è la stessa struttura utilizzata da \func{wait4}  per ricavare la
@@ -1438,7 +1439,7 @@ funzione \func{getrusage}, il cui prototipo 
 
 
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
-  nel qual caso \var{errno} può essere \const{EINVAL} o \const{EFAULT}.}
+  nel qual caso \var{errno} può essere \errval{EINVAL} o \errval{EFAULT}.}
 \end{functions}
 
 L'argomento \param{who} permette di specificare il processo di cui si vuole
@@ -1463,7 +1464,7 @@ In generale il primo viene chiamato un limite \textsl{soffice} (o \textit{soft
   limit}) dato che il suo valore può essere aumentato, mentre il secondo è
 detto \textsl{duro} (o \textit{hard limit}), in quanto un processo normale non
 può modificarne il valore. Il valore di questi limiti è mantenuto in una
-struttura \var{rlimit}, la cui definizione è riportata in
+struttura \struct{rlimit}, la cui definizione è riportata in
 \figref{fig:sys_rlimit_struct}, ed i cui campi corrispondono appunto a limite
 corrente e massimo.
 
@@ -1479,7 +1480,7 @@ struct rlimit {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{rlimit} per impostare i limiti di utilizzo 
+  \caption{La struttura \structd{rlimit} per impostare i limiti di utilizzo 
     delle risorse usate da un processo.}
   \label{fig:sys_rlimit_struct}
 \end{figure}
@@ -1509,12 +1510,12 @@ prototipi sono:
     \item[\errcode{EPERM}] Un processo senza i privilegi di amministratore ha
     cercato di innalzare i propri limiti.
     \end{errlist}
-  ed \const{EFAULT}.}
+  ed \errval{EFAULT}.}
 \end{functions}
 
 Entrambe le funzioni permettono di specificare su quale risorsa si vuole
 operare attraverso \param{resource}, i cui possibili valori sono elencati in
-\secref{tab:sys_rlimit_values}, e utilizzano una struttura \var{rlimit} per
+\secref{tab:sys_rlimit_values}, e utilizzano una struttura \struct{rlimit} per
 specificarne i valori.
 
 \begin{table}[htb]
@@ -1612,7 +1613,7 @@ dimensione delle pagine di memoria; il suo prototipo 
     sono previsti errori.}
 \end{prototype}
 
-La funzione è prevista in SVr4, 4.4BSD e SUSv2, anche se questo ultimo
+La funzione è prevista in SVr4, BSD 4.4 e SUSv2, anche se questo ultimo
 standard la etichetta come obsoleta, mentre lo standard POSIX 1003.1-2001 la
 ha eliminata. In Linux è implementata come una system call nelle architetture
 in cui essa è necessaria, ed in genere restituisce il valore del simbolo
@@ -1661,11 +1662,11 @@ Il suo prototipo 
 \end{prototype}
 
 La funzione restituisce in ciascun elemento di \param{loadavg} il numero medio
-di processi attivi sulla coda dello scheduler, calcolato su un diverso
-intervalli di tempo.  Il numero di intervalli che si vogliono leggere è
-specificato da \param{nelem}, dato che nel caso di Linux il carico viene
-valutato solo su tre intervalli (corrispondenti a 1, 5 e 15 minuti), questo è
-anche il massimo valore che può essere assegnato a questo argomento.
+di processi attivi sulla coda dello scheduler\index{scheduler}, calcolato su
+un diverso intervalli di tempo.  Il numero di intervalli che si vogliono
+leggere è specificato da \param{nelem}, dato che nel caso di Linux il carico
+viene valutato solo su tre intervalli (corrispondenti a 1, 5 e 15 minuti),
+questo è anche il massimo valore che può essere assegnato a questo argomento.
 
 
 
@@ -1788,7 +1789,7 @@ possono essere letti attraverso la funzione \func{times}, il cui prototipo 
 \end{prototype}
 
 La funzione restituisce i valori di process time del processo corrente in una
-struttura di tipo \var{tms}, la cui definizione è riportata in
+struttura di tipo \struct{tms}, la cui definizione è riportata in
 \secref{fig:sys_tms_struct}. La struttura prevede quattro campi; i primi due,
 \var{tms\_utime} e \var{tms\_stime}, sono l'\textit{user time} ed il
 \textit{system time} del processo, così come definiti in
@@ -1808,7 +1809,7 @@ struct tms {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{tms} dei tempi di processore associati a un
+  \caption{La struttura \structd{tms} dei tempi di processore associati a un
     processo.} 
   \label{fig:sys_tms_struct}
 \end{figure}
@@ -1840,7 +1841,7 @@ in nel suddetto formato; il suo prototipo 
   Legge il valore corrente del \textit{calendar time}.
   
   \bodydesc{La funzione ritorna il valore del \textit{calendar time} in caso
-    di successo e -1 in caso di errore, che può essere solo \const{EFAULT}.}
+    di successo e -1 in caso di errore, che può essere solo \errval{EFAULT}.}
 \end{prototype}
 \noindent dove \param{t}, se non nullo, deve essere  l'indirizzo di una
 variabile su cui duplicare il valore di ritorno.
@@ -1852,7 +1853,7 @@ sia necessario; il suo prototipo 
   Imposta a \param{t} il valore corrente del \textit{calendar time}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
-    che può essere \const{EFAULT} o \const{EPERM}.}
+    che può essere \errval{EFAULT} o \errval{EPERM}.}
 \end{prototype}
 \noindent dato che modificare l'ora ha un impatto su tutto il sistema 
 il cambiamento dell'orologio è una operazione privilegiata e questa funzione
@@ -1882,12 +1883,12 @@ sono:
   
   \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in
     caso di errore, nel qual caso \var{errno} può assumere i valori
-    \const{EINVAL} \const{EFAULT} e per \func{settimeofday} anche
-    \const{EPERM}.}
+    \errval{EINVAL} \errval{EFAULT} e per \func{settimeofday} anche
+    \errval{EPERM}.}
 \end{functions}
 
-Queste funzioni utilizzano una struttura di tipo \var{timeval}, la cui
-definizione, insieme a quella della analoga \var{timespec}, è riportata in
+Queste funzioni utilizzano una struttura di tipo \struct{timeval}, la cui
+definizione, insieme a quella della analoga \struct{timespec}, è riportata in
 \figref{fig:sys_timeval_struct}. Le \acr{glibc} infatti forniscono queste due
 rappresentazioni alternative del \textit{calendar time} che rispetto a
 \type{time\_t} consentono rispettivamente precisioni del microsecondo e del
@@ -1911,7 +1912,7 @@ struct timespec {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{Le strutture \var{timeval} e \var{timespec} usate per una
+  \caption{Le strutture \structd{timeval} e \structd{timespec} usate per una
     rappresentazione ad alta risoluzione del \textit{calendar time}.}
   \label{fig:sys_timeval_struct}
 \end{figure}
@@ -1920,8 +1921,8 @@ Come nel caso di \func{stime} anche \func{settimeofday} (e qualunque funzione
 vada a modificare l'orologio di sistema, come quelle che tratteremo in
 seguito) può essere utilizzata solo da un processo coi privilegi di
 amministratore.  Il secondo parametro di entrambe le funzioni è una struttura
-\var{timezone}, che storicamente veniva utilizzata per specificare appunto la
-\textit{time zone}, cioè l'insieme del fuso orario e delle convenzioni per
+\struct{timezone}, che storicamente veniva utilizzata per specificare appunto
+la \textit{time zone}, cioè l'insieme del fuso orario e delle convenzioni per
 l'ora legale che permettevano il passaggio dal tempo universale all'ora
 locale. Questo parametro è obsoleto e in Linux non è mai stato utilizzato e
 non è supportato né dalle vecchie \textsl{libc5}, né dalle \textsl{glibc}:
@@ -1961,14 +1962,14 @@ modificare anche la velocit
   
   \bodydesc{La funzione restituisce lo stato dell'orologio (un valore $>0$) in
     caso di successo e -1 in caso di errore, nel qual caso \var{errno}
-    assumerà i valori \const{EFAULT}, \const{EINVAL} ed \const{EPERM}.}
+    assumerà i valori \errval{EFAULT}, \errval{EINVAL} ed \errval{EPERM}.}
 \end{prototype}
 
-La funzione richiede una struttura di tipo \var{timex}, la cui definizione,
+La funzione richiede una struttura di tipo \struct{timex}, la cui definizione,
 così come effettuata in \file{sys/timex.h}, è riportata in
 \figref{fig:sys_timex_struct}. L'azione della funzione dipende dal valore del
 campo \var{mode}, che specifica quale parametro dell'orologio di sistema,
-specificato in un opportuno campo di \var{timex}, deve essere impostato. Un
+specificato in un opportuno campo di \struct{timex}, deve essere impostato. Un
 valore nullo serve per leggere i parametri correnti; i valori diversi da zero
 devono essere specificati come OR binario delle costanti riportate in
 \secref{tab:sys_timex_mode}.
@@ -2001,7 +2002,8 @@ struct timex {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{timex} per il controllo dell'orologio di sistema.}
+  \caption{La struttura \structd{timex} per il controllo dell'orologio di
+    sistema.} 
   \label{fig:sys_timex_struct}
 \end{figure}
 
@@ -2012,7 +2014,7 @@ anche un suo omonimo \func{ntp\_adjtime}.  La trattazione completa di questa
 funzione necessita di una lettura approfondita del meccanismo descritto
 nell'RFC~1305, ci limitiamo a descrivere in \tabref{tab:sys_timex_mode} i
 principali valori utilizzabili per il campo \var{mode}, un elenco più
-dettagliato del significato dei vari campi della struttura \var{timex} può
+dettagliato del significato dei vari campi della struttura \struct{timex} può
 essere ritrovato in \cite{glibc}.
 
 \begin{table}[htb]
@@ -2027,33 +2029,33 @@ essere ritrovato in \cite{glibc}.
                                            reale e l'orologio di sistema, che 
                                            deve essere indicata in microsecondi
                                            nel campo \var{offset} di
-                                           \var{timex}.\\ 
+                                           \struct{timex}.\\ 
     \const{ADJ\_FREQUENCY}      & 0x0002 & Imposta la differenze in frequenza
                                            fra il tempo reale e l'orologio di
                                            sistema, che deve essere indicata
                                            in parti per milione nel campo
-                                           \var{frequency} di \var{timex}.\\
+                                           \var{frequency} di \struct{timex}.\\
     \const{ADJ\_MAXERROR}       & 0x0004 & Imposta il valore massimo 
                                            dell'errore
                                            sul tempo, espresso in microsecondi 
                                            nel campo \var{maxerror} di
-                                           \var{timex}.\\ 
+                                           \struct{timex}.\\ 
     \const{ADJ\_ESTERROR}       & 0x0008 & Imposta la stima dell'errore
                                            sul tempo, espresso in microsecondi 
                                            nel campo \var{esterror} di
-                                           \var{timex}.\\
+                                           \struct{timex}.\\
     \const{ADJ\_STATUS}         & 0x0010 & Imposta alcuni
                                            valori di stato interni usati dal
                                            sistema nella gestione
                                            dell'orologio specificati nel campo
-                                           \var{status} di \var{timex}.\\ 
+                                           \var{status} di \struct{timex}.\\ 
     \const{ADJ\_TIMECONST}      & 0x0020 & Imposta la larghezza di banda del 
                                            PLL implementato dal kernel,
                                            specificato nel campo
-                                           \var{constant} di \var{timex}.\\ 
+                                           \var{constant} di \struct{timex}.\\ 
     \const{ADJ\_TICK}           & 0x4000 & Imposta il valore dei tick del timer
                                            in microsecondi, espresso nel campo
-                                           \var{tick} di \var{timex}.\\ 
+                                           \var{tick} di \struct{timex}.\\ 
     \const{ADJ\_OFFSET\_SINGLESHOT}&0x8001&Imposta uno spostamento una tantum 
                                            dell'orologio secondo il valore del
                                            campo \var{offset} simulando il
@@ -2061,7 +2063,7 @@ essere ritrovato in \cite{glibc}.
     \hline
   \end{tabular}
   \caption{Costanti per l'assegnazione del valore del campo \var{mode} della
-    struttura \var{timex}.} 
+    struttura \struct{timex}.} 
   \label{tab:sys_timex_mode}
 \end{table}
 
@@ -2129,18 +2131,18 @@ struct tm {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \var{tm} per una rappresentazione del tempo in termini
-    di ora, minuti, secondi, ecc.}
+  \caption{La struttura \structd{tm} per una rappresentazione del tempo in
+    termini di ora, minuti, secondi, ecc.}
   \label{fig:sys_tm_struct}
 \end{figure}
 
-Questo viene effettuato attraverso una opportuna struttura \var{tm}, la cui
+Questo viene effettuato attraverso una opportuna struttura \struct{tm}, la cui
 definizione è riportata in \figref{fig:sys_tm_struct}, ed è in genere questa
 struttura che si utilizza quando si deve specificare un tempo a partire dai
 dati naturali (ora e data), dato che essa consente anche di trattare la
 gestione del fuso orario e dell'ora legale.\footnote{in realtà i due campi
   \var{tm\_gmtoff} e \var{tm\_zone} sono estensioni previste da BSD e dalle
-  \acr{glibc}, che, quando è definita \const{\_BSD\_SOURCE}, hanno la forma in
+  \acr{glibc}, che, quando è definita \macro{\_BSD\_SOURCE}, hanno la forma in
   \figref{fig:sys_tm_struct}.}
 
 Le funzioni per la gestione del \textit{broken-down time} sono varie e vanno
@@ -2189,7 +2191,7 @@ l'utente deve specificare il buffer su cui la stringa deve essere copiata
 (deve essere di almeno 26 caratteri).
 
 Le altre tre funzioni, \func{gmtime}, \func{localtime} e \func{mktime} servono
-per convertire il tempo dal formato \type{time\_t} a quello di \var{tm} e
+per convertire il tempo dal formato \type{time\_t} a quello di \struct{tm} e
 viceversa; \func{gmtime} effettua la conversione usando il tempo coordinato
 universale (UTC), cioè l'ora di Greenwich; mentre \func{localtime} usa l'ora
 locale; \func{mktime} esegue la conversione inversa.  
@@ -2206,7 +2208,7 @@ locale, compresa l'eventuale ora legale. Questo viene fatto attraverso le tre
 variabili globali mostrate in \figref{fig:sys_tzname}, cui si accede quando si
 include \file{time.h}. Queste variabili vengono impostate quando si chiama una
 delle precedenti funzioni di conversione, oppure invocando direttamente la
-funzione \func{tzset}, il cui prototipo è:
+funzione \funcd{tzset}, il cui prototipo è:
 \begin{prototype}{sys/timex.h}
 {void tzset(void)} 
   
@@ -2344,17 +2346,17 @@ Per riportare il tipo di errore il sistema usa la variabile globale
   anche di definire \var{errno} come un \textit{modifiable lvalue}, quindi si
   può anche usare una macro, e questo è infatti il modo usato da Linux per
   renderla locale ai singoli thread.} definita nell'header \file{errno.h}; la
-variabile è in genere definita come \ctyp{volatile} dato che può essere
-cambiata in modo asincrono da un segnale (si veda \ref{sec:sig_sigchld} per un
-esempio, ricordando quanto trattato in \ref{sec:proc_race_cond}), ma dato che
-un manipolatore di segnale scritto bene salva e ripristina il valore della
-variabile, di questo non è necessario preoccuparsi nella programmazione
+variabile è in genere definita come \direct{volatile} dato che può essere
+cambiata in modo asincrono da un segnale (si veda \secref{sec:sig_sigchld} per
+un esempio, ricordando quanto trattato in \secref{sec:proc_race_cond}), ma
+dato che un manipolatore di segnale scritto bene salva e ripristina il valore
+della variabile, di questo non è necessario preoccuparsi nella programmazione
 normale.
 
 I valori che può assumere \var{errno} sono riportati in \capref{cha:errors},
 nell'header \file{errno.h} sono anche definiti i nomi simbolici per le
 costanti numeriche che identificano i vari errori; essi iniziano tutti per
-\var{E} e si possono considerare come nomi riservati. In seguito faremo
+\val{E} e si possono considerare come nomi riservati. In seguito faremo
 sempre riferimento a tali valori, quando descriveremo i possibili errori
 restituiti dalle funzioni. Il programma di esempio \cmd{errcode} stampa il
 codice relativo ad un valore numerico con l'opzione \cmd{-l}.
@@ -2386,7 +2388,7 @@ prima funzione che si pu
   
   \bodydesc{La funzione ritorna il puntatore alla stringa col messaggio di
     errore in caso di successo e \val{null} in caso di errore, nel qual caso
-    \var{errno} assumerà il valore \const{EINVAL} se si è specificato un
+    \var{errno} assumerà il valore \errval{EINVAL} se si è specificato un
     numero di errore non valido.}
 \end{prototype}
 
@@ -2394,7 +2396,7 @@ In generale \func{strerror} viene usata passando \var{errno} come parametro;
 nel caso si specifichi un codice sbagliato verrà restituito un messaggio di
 errore sconosciuto, e la funzione restituirà come errore \errcode{EINVAL}. La
 funzione tiene conto del valore della variabile di ambiente
-\const{LC\_MESSAGES} per usare eventuali traduzioni dei messaggi d'errore
+\val{LC\_MESSAGES} per usare eventuali traduzioni dei messaggi d'errore
 nella localizzazione presente. 
 
 La funzione utilizza una stringa statica che non deve essere modificata dal
@@ -2412,8 +2414,8 @@ thread 
   (compreso il terminatore) \param{size}.
   
   \bodydesc{La funzione restituisce il puntatore alla stringa; in caso di
-    errore \var{errno} oltre a \const{EINVAL} può assumere anche il valore
-    \const{ERANGE} per indicare che non c'è sufficiente memoria per contenere
+    errore \var{errno} oltre a \errval{EINVAL} può assumere anche il valore
+    \errval{ERANGE} per indicare che non c'è sufficiente memoria per contenere
     la stringa di descrizione.}
 \end{prototype}
 \noindent
@@ -2430,13 +2432,13 @@ automatizzata sullo standard error (vedi \secref{sec:file_std_descr}) 
 \func{perror}, il cui prototipo è:
 \begin{prototype}{stdio.h}{void perror(const char *message)} 
   Stampa il messaggio di errore relativo al valore corrente di \var{errno}
-  sullo standard error; preceduto dalla stringa \var{message}.
+  sullo standard error; preceduto dalla stringa \param{message}.
 \end{prototype}
 
 I messaggi di errore stampati sono gli stessi di \func{strerror}, (riportati
 in \capref{cha:errors}), e, usando il valore corrente di \var{errno}, si
 riferiscono all'ultimo errore avvenuto. La stringa specificata con
-\var{message} viene stampato prime del messaggio d'errore, seguita dai due
+\param{message} viene stampato prime del messaggio d'errore, seguita dai due
 punti e da uno spazio, il messaggio è terminato con un a capo.
 
 Il messaggio può essere riportato anche usando altre variabili globali