Correzioni all'uso improprio di \macro
[gapil.git] / system.tex
index c68686fcc5d9cfdd3d4e517f516bc04780ddd8fc..a8852c09dc4ed08bebf2226f4eb9588fbf07fb47 100644 (file)
@@ -1,3 +1,13 @@
+%% system.tex
+%%
+%% Copyright (C) 2000-2002 Simone Piccardi.  Permission is granted to
+%% copy, distribute and/or modify this document under the terms of the GNU Free
+%% Documentation License, Version 1.1 or any later version published by the
+%% Free Software Foundation; with the Invariant Sections being "Prefazione",
+%% with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the
+%% license is included in the section entitled "GNU Free Documentation
+%% License".
+%%
 \chapter{La gestione del sistema, delle risorse, e degli errori}
 \label{cha:system}
 
@@ -10,7 +20,7 @@ e degli errori.
 
 
 
-\section{La lettura delle caratteristiche del sistema}
+\section{Capacità e caratteristiche del sistema}
 \label{sec:sys_characteristics}
 
 In questa sezione tratteremo le varie modalità con cui un programma può
@@ -21,11 +31,11 @@ l'architettura hardware, l'implementazione del kernel e delle librerie, le
 opzioni di configurazione.
 
 La definizione di queste caratteristiche ed il tentativo di provvedere dei
-meccanismi generali che i programmi potessero usare per ricavarle è uno degli
+meccanismi generali che i programmi possono usare per ricavarle è uno degli
 aspetti più complessi e controversi con cui le diverse standardizzazioni si
 sono dovute confrontare, spesso con risultati spesso tutt'altro che chiari.
-Proveremo comunque a dare una descrizione dei principali metodi previsti dai
-vari standard per ricavare sia le caratteristiche specifiche del sistema, che
+Daremo comunque una descrizione dei principali metodi previsti dai vari
+standard per ricavare sia le caratteristiche specifiche del sistema, che
 quelle della gestione dei file.
 
 
@@ -35,11 +45,11 @@ quelle della gestione dei file.
 Quando si devono determinare le le caratteristiche generali del sistema ci si
 trova di fronte a diverse possibilità; alcune di queste infatti possono
 dipendere dall'architettura dell'hardware (come le dimensioni dei tipi
-interi), o dal sistema operativo (come la presenza o meno dei \textit{saved
-  id}), altre invece possono dipendere dalle opzioni con cui si è costruito
-il sistema (ad esempio da come si è compilato il kernel), o dalla
-configurazione del medesimo; per questo motivo in generale sono necessari due
-tipi diversi di funzionalità:
+interi), o dal sistema operativo (come la presenza o meno del gruppo degli
+identificatori \textit{saved}), altre invece possono dipendere dalle opzioni
+con cui si è costruito il sistema (ad esempio da come si è compilato il
+kernel), o dalla configurazione del medesimo; per questo motivo in generale
+sono necessari due tipi diversi di funzionalità:
 \begin{itemize*}
 \item la possibilità di determinare limiti ed opzioni al momento della
   compilazione.
@@ -241,9 +251,10 @@ valori ottenuti da \func{sysconf}.
     \hline
     \macro{\_POSIX\_JOB\_CONTROL}& il sistema supporta il 
                                    \textit{job control} (vedi 
-                                   \secref{sec:sess_xxx}).\\
-    \macro{\_POSIX\_SAVED\_IDS}  & il sistema supporta i \textit{saved id} 
-                                   (vedi \secref{sec:proc_access_id}). 
+                                   \secref{sec:sess_job_control}).\\
+    \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\\
     \macro{\_POSIX\_VERSION}     & fornisce la versione dello standard POSIX.1
                                    supportata nel formato YYYYMML (ad esempio 
@@ -263,15 +274,15 @@ incluso automaticamente all'interno di \file{limits.h}). Di questi vale la
 pena menzionare alcune macro di uso comune, (riportate in
 \tabref{tab:sys_posix1_other}), che non indicano un valore specifico, ma
 denotano la presenza di alcune funzionalità nel sistema (come il supporto del
-\textit{job control} o dei \textit{saved id}).
+\textit{job control} o degli identificatori del gruppo \textit{saved}).
 
 Oltre allo standard POSIX.1, anche lo standard POSIX.2 definisce una serie di
 altre costanti. Siccome queste sono principalmente attinenti a limiti relativi
 alle applicazioni di sistema presenti (come quelli su alcuni parametri delle
 espressioni regolari o del comando \cmd{bc}), non li tratteremo
 esplicitamente, se ne trova una menzione completa nell'header file
-\file{bits/posix2\_lim.h}, e alcuni di loro sono descritti nella man page di
-\func{sysconf} e nel manuale delle \acr{glibc}.
+\file{bits/posix2\_lim.h}, e alcuni di loro sono descritti nella pagina di
+manuale di \func{sysconf} e nel manuale delle \acr{glibc}.
 
 
 \subsection{La funzione \func{sysconf}}
@@ -331,7 +342,7 @@ relative spiegazioni, si pu
       \textit{process time} (vedi \secref{sec:sys_unix_time}).\\
       \texttt{\_SC\_JOB\_CONTROL}&\macro{\_POSIX\_JOB\_CONTROL}&
       Indica se è supportato il \textit{job control} (vedi
-      \secref{sec:sess_xxx}) in stile POSIX.\\
+      \secref{sec:sess_job_control}) in stile POSIX.\\
       \texttt{\_SC\_SAVED\_IDS}&\macro{\_POSIX\_SAVED\_IDS}&
       Indica se il sistema supporta i \textit{saved id} (vedi
       \secref{sec:proc_access_id}).\\ 
@@ -387,19 +398,20 @@ riportate in \tabref{tab:sys_file_macro}.
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|r|l|}
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline                
-    \macro{NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
-    \macro{PATH\_MAX}& 256  & lunghezza in byte di pathname.\\
-    \macro{PIPE\_BUF}&4096  & byte scrivibili atomicamente in una pipe\\
     \macro{LINK\_MAX}   &8  & numero massimo di link a un file\\
-    \macro{MAX\_CANON}&255  & spazio disponibile nella coda di input
-                              canonica del terminale\\
+    \macro{NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
+    \macro{PATH\_MAX}& 256  & lunghezza in byte di un pathname.\\
+    \macro{PIPE\_BUF}&4096  & byte scrivibili atomicamente in una pipe
+                              (vedi \secref{sec:ipc_pipes}).\\
+    \macro{MAX\_CANON}&255  & dimensione di una riga di terminale in modo 
+                              canonico (vedi \secref{sec:term_design}).\\
     \macro{MAX\_INPUT}&255  & spazio disponibile nella coda di input 
-                              del terminale\\
+                              del terminale (vedi \secref{sec:term_design}).\\
     \hline                
   \end{tabular}
   \caption{Macro per i limiti sulle caratteristiche dei file.}
@@ -415,21 +427,20 @@ analoghe di \tabref{tab:sys_posix1_general}.
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|r|l|}
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
-    \macro{\_POSIX\_LINK\_MAX}   &8  & numero massimo di link a un file\\
-    \macro{\_POSIX\_MAX\_CANON}&255  & spazio disponibile nella coda di input
-                                       canonica del terminale\\
-    \macro{\_POSIX\_MAX\_INPUT}&255  & spazio disponibile nella coda di input 
-                                       del terminale\\
+    \macro{\_POSIX\_LINK\_MAX}   &8  & numero massimo di link a un file.\\
     \macro{\_POSIX\_NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
-    \macro{\_POSIX\_PATH\_MAX}& 256  & lunghezza in byte di pathname.\\
+    \macro{\_POSIX\_PATH\_MAX}& 256  & lunghezza in byte di un pathname.\\
     \macro{\_POSIX\_PIPE\_BUF}& 512  & byte scrivibili atomicamente in una
-                                       pipe\\
+                                       pipe.\\
+    \macro{\_POSIX\_MAX\_CANON}&255  & dimensione di una riga di
+                                       terminale in modo canonico.\\
+    \macro{\_POSIX\_MAX\_INPUT}&255  & spazio disponibile nella coda di input 
+                                       del terminale.\\
 %    \macro{\_POSIX\_MQ\_OPEN\_MAX}&  8& \\
 %    \macro{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\
 %    \macro{\_POSIX\_FD\_SETSIZE}& 16 & \\
@@ -487,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} viene impostata a \macro{EFAULT}.}
+    fallimento, nel qual caso \var{errno} assumerà il valore \macro{EFAULT}.}
 \end{prototype}
 
 La funzione, che viene usata dal comando \cmd{uname}, restituisce le
@@ -504,7 +515,7 @@ indicano rispettivamente:
 \item il nome del domino.
 \end{itemize*}
 l'ultima informazione è stata aggiunta di recente e non è prevista dallo
-standard POSIX, essa è accessibile, come mostrato in \figref{fig:sig_stack_t},
+standard POSIX, essa è accessibile, come mostrato in \figref{fig:sys_utsname},
 solo definendo \macro{\_GNU\_SOURCE}.
 
 \begin{figure}[!htb]
@@ -534,11 +545,11 @@ In generale si tenga presente che le dimensioni delle stringe di una
 \macro{\_UTSNAME\_LENGTH} per i campi standard e
 \macro{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio;
 altri sistemi usano nomi diversi come \macro{SYS\_NMLN} o \macro{\_SYS\_NMLN}
-o \macro{UTSLEN} che possono avere valori diversi. Nel caso di Linux
+o \macro{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.
+una lunghezza di 257 byte.}
 
 
 \section{Opzioni e configurazione del sistema}
@@ -555,11 +566,9 @@ da uno standard, ogni sistema pu
 configurazione, che, non essendo mai fissi e variando da sistema a sistema,
 non sono stati inclusi nella standardizzazione della sezione precedente. Per
 questi occorre, oltre al meccanismo di impostazione, pure un meccanismo di
-lettura.
-
-Affronteremo questi argomenti in questa sezione, insieme alle funzioni che si
-usano per il controllo di altre caratteristiche generali del sistema, come
-quelle per la gestione dei filesystem e di utenti e gruppi.
+lettura.  Affronteremo questi argomenti in questa sezione, insieme alle
+funzioni che si usano per il controllo di altre caratteristiche generali del
+sistema, come quelle per la gestione dei filesystem e di utenti e gruppi.
 
 
 \subsection{La funzione \func{sysctl} ed il filesystem \file{/proc}}
@@ -570,23 +579,21 @@ sistema 
 l'implementazione è specifica di Linux; il suo prototipo è:
 \begin{functions}
 \headdecl{unistd.h}
-\headdecl{linux/unistd.h}
-\headdecl{linux/sysctl.h}
 \funcdecl{int sysctl(int *name, int nlen, void *oldval, size\_t *oldlenp, void
   *newval, size\_t newlen)}
 
 Legge o scrive uno dei parametri di sistema.
 
 \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-  errore, nel qual caso \var{errno} viene impostata ai valori:
+  errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-  \item[\macro{EPERM}] il processo non ha il permesso di accedere ad uno dei
-    componenti nel cammino specificato per il parametro, o non ha il permesso
-    di accesso al parametro nella modalità scelta.
+  \item[\macro{EPERM}] non si ha il permesso di accedere ad uno dei componenti
+    nel cammino specificato per il parametro, o di accedere al parametro nella
+    modalità scelta.
   \item[\macro{ENOTDIR}] non esiste un parametro corrispondente al nome
     \param{name}.
-  \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
-    \param{oldval} è non nullo. 
+%  \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
+%    \param{oldval} è non nullo. 
   \item[\macro{EINVAL}] o si è specificato un valore non valido per il
     parametro che si vuole impostare o lo spazio provvisto per il ritorno di un
     valore non è delle giuste dimensioni.
@@ -594,14 +601,19 @@ 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 \macro{EFAULT}.
 }
 \end{functions}
 
 I parametri a cui la funzione permettere di accedere sono organizzati in
-maniera gerarchica all'interno un albero; per accedere ad uno di essi occorre
-specificare un cammino attraverso i vari nodi dell'albero, in maniera analoga
-a come avviene per la risoluzione di un pathname (da cui l'uso alternativo del
-filesystem \file{/proc}, che vedremo dopo).
+maniera gerarchica all'interno un albero;\footnote{si tenga presente che
+  includendo solo \file{unistd.h}, saranno definiti solo i parametri generici;
+  dato che ce ne sono molti specifici dell'implementazione, nel caso di Linux
+  occorrerà includere anche i file \file{linux/unistd.h} e
+  \file{linux/sysctl.h}.} per accedere ad uno di essi occorre specificare un
+cammino attraverso i vari nodi dell'albero, in maniera analoga a come avviene
+per la risoluzione di un pathname (da cui l'uso alternativo del filesystem
+\file{/proc}, che vedremo dopo).
 
 Ciascun nodo dell'albero è identificato da un valore intero, ed il cammino che
 arriva ad identificare un parametro specifico è passato alla funzione
@@ -753,7 +765,7 @@ significativi sono un \textit{magic number}\footnote{cio
   riservata al \textit{magic number}.} mentre i 16 meno significativi sono
 usati per specificare le opzioni; essi sono usati come maschera binaria e
 vanno impostati con un OR aritmetico della costante \macro{MS\_MGC\_VAL} con i
-valori riportati in \ntab.
+valori riportati in \tabref{tab:sys_mount_flags}.
 
 \begin{table}[htb]
   \footnotesize
@@ -807,7 +819,7 @@ Una volta che non si voglia pi
   Smonta il filesystem montato sulla directory \param{target}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene impostata a:
+    fallimento, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EPERM}] il processo non ha i privilegi di amministratore.
   \item[\macro{EBUSY}]  \param{target} è la directory di lavoro di qualche
@@ -862,7 +874,7 @@ informazioni riguardo al filesystem su cui si trova un certo file, sono
   posto il file specificato.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{ENOSYS}] il filesystem su cui si trova il file specificato non
   supporta la funzione.
@@ -875,10 +887,10 @@ informazioni riguardo al filesystem su cui si trova un certo file, sono
 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
-\ref{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 \macro{XXX\_SUPER\_MAGIC}, dove \macro{XXX} in genere è il
+\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]
@@ -1122,7 +1134,8 @@ capacit
 completa. Per questo motivo l'uso di queste funzioni è deprecato in favore
 dell'uso di PAM, ci limiteremo pertanto ad elencarle in
 \tabref{tab:sys_passwd_func}, rimandando chi fosse interessato alle rispettive
-man page e al manuale delle \acr{glibc} per i dettagli del loro funzionamento.
+pagine di manuale e al manuale delle \acr{glibc} per i dettagli del loro
+funzionamento.
 
 
 
@@ -1472,10 +1485,10 @@ struct rlimit {
 \end{figure}
 
 In genere il superamento di un limite comporta o l'emissione di un segnale o
-il fallimento della system call che lo ha provocato; per far leggere o impostare
-i limiti di utilizzo delle risorse da parte di un processo le \acr{glibc}
-prevedono due funzioni, \func{getrlimit} e \func{setrlimit}, i cui prototipi
-sono:
+il fallimento della system call che lo ha provocato; per far leggere o
+impostare i limiti di utilizzo delle risorse da parte di un processo le
+\acr{glibc} prevedono due funzioni, \func{getrlimit} e \func{setrlimit}, i cui
+prototipi sono:
 \begin{functions}
   \headdecl{sys/time.h} 
   \headdecl{sys/resource.h} 
@@ -1490,7 +1503,7 @@ sono:
   Imposta il limite per la risorsa \param{resource}.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] I valori per \param{resource} non sono validi.
     \item[\macro{EPERM}] Un processo senza i privilegi di amministratore ha
@@ -1868,7 +1881,7 @@ sono:
   Imposta il tempo di sistema.
   
   \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in
-    caso di errore, nel qual caso \var{errno} può assumere il valori
+    caso di errore, nel qual caso \var{errno} può assumere i valori
     \macro{EINVAL} \macro{EFAULT} e per \func{settimeofday} anche
     \macro{EPERM}.}
 \end{functions}
@@ -2053,8 +2066,8 @@ essere ritrovato in \cite{glibc}.
 
 Il valore delle costanti per \var{mode} può essere anche espresso, secondo la
 sintassi specificata per la forma equivalente di questa funzione definita come
-\func{ntp\_adjtime}, utilizzando il prefisso \macro{MOD} al posto di
-\macro{ADJ}.
+\func{ntp\_adjtime}, utilizzando il prefisso \code{MOD} al posto di
+\code{ADJ}.
 
 \begin{table}[htb]
   \footnotesize
@@ -2260,30 +2273,30 @@ indefinito.
     \textbf{Modificatore} & \textbf{Esempio} & \textbf{Significato}\\
     \hline
     \hline
-    \macro{\%a}&\texttt{Wed}        & Nome del giorno, abbreviato.\\ 
-    \macro{\%A}&\texttt{Wednesday}  & Nome del giorno, completo.\\ 
-    \macro{\%b}&\texttt{Apr}        & Nome del mese, abbreviato.\\ 
-    \macro{\%B}&\texttt{April}      & Nome del mese, completo.\\ 
-    \macro{\%c}&\texttt{Wed Apr 24 18:40:50 2002}& Data e ora.\\ 
-    \macro{\%d}&\texttt{24}         & Giorno del mese.\\ 
-    \macro{\%H}&\texttt{18}         & Ora del giorno, da 0 a 24.\\ 
-    \macro{\%I}&\texttt{06}         & Ora del giorno, da 0 a 12.\\ 
-    \macro{\%j}&\texttt{114}        & Giorno dell'anno.\\ 
-    \macro{\%m}&\texttt{04}         & Mese dell'anno.\\ 
-    \macro{\%M}&\texttt{40}         & Minuto.\\ 
-    \macro{\%p}&\texttt{PM}         & AM/PM.\\ 
-    \macro{\%S}&\texttt{50}         & Secondo.\\ 
-    \macro{\%U}&\texttt{16}         & Settimana dell'anno (partendo dalla
-                                      domenica).\\ 
-    \macro{\%w}&\texttt{3}          & Giorno della settimana.  \\ 
-    \macro{\%W}&\texttt{16}         & Settimana dell'anno (partendo dal
-                                      lunedì).\\ 
-    \macro{\%x}&\texttt{04/24/02}   & La data.\\ 
-    \macro{\%X}&\texttt{18:40:50}   & L'ora.\\ 
-    \macro{\%y}&\texttt{02}         & Anno nel secolo.\\ 
-    \macro{\%Y}&\texttt{2002}       & Anno.\\ 
-    \macro{\%Z}&\texttt{CEST}       & Nome della \textit{timezone}.\\ 
-    \macro{\%\%}&\texttt{\%}        & Il carattere \%.\\ 
+    \var{\%a}&\texttt{Wed}        & Nome del giorno, abbreviato.\\ 
+    \var{\%A}&\texttt{Wednesday}  & Nome del giorno, completo.\\ 
+    \var{\%b}&\texttt{Apr}        & Nome del mese, abbreviato.\\ 
+    \var{\%B}&\texttt{April}      & Nome del mese, completo.\\ 
+    \var{\%c}&\texttt{Wed Apr 24 18:40:50 2002}& Data e ora.\\ 
+    \var{\%d}&\texttt{24}         & Giorno del mese.\\ 
+    \var{\%H}&\texttt{18}         & Ora del giorno, da 0 a 24.\\ 
+    \var{\%I}&\texttt{06}         & Ora del giorno, da 0 a 12.\\ 
+    \var{\%j}&\texttt{114}        & Giorno dell'anno.\\ 
+    \var{\%m}&\texttt{04}         & Mese dell'anno.\\ 
+    \var{\%M}&\texttt{40}         & Minuto.\\ 
+    \var{\%p}&\texttt{PM}         & AM/PM.\\ 
+    \var{\%S}&\texttt{50}         & Secondo.\\ 
+    \var{\%U}&\texttt{16}         & Settimana dell'anno (partendo dalla
+                                    domenica).\\ 
+    \var{\%w}&\texttt{3}          & Giorno della settimana.  \\ 
+    \var{\%W}&\texttt{16}         & Settimana dell'anno (partendo dal
+                                    lunedì).\\ 
+    \var{\%x}&\texttt{04/24/02}   & La data.\\ 
+    \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 \textit{timezone}.\\ 
+    \var{\%\%}&\texttt{\%}        & Il carattere \%.\\ 
     \hline
   \end{tabular}
   \caption{Valori previsti dallo standard ANSI C per modificatore della
@@ -2340,7 +2353,7 @@ 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
-\macro{E} e si possono considerare come nomi riservati. In seguito faremo
+\var{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}.
@@ -2372,8 +2385,8 @@ prima funzione che si pu
   
   \bodydesc{La funzione ritorna il puntatore alla stringa col messaggio di
     errore in caso di successo e \macro{NULL} in caso di errore, nel qual caso
-    \var{errno} sarà impostata a \macro{EINVAL} se si è specificato un numero di
-    errore non valido.}
+    \var{errno} assumerà il valore \macro{EINVAL} se si è specificato un
+    numero di errore non valido.}
 \end{prototype}
 
 In generale \func{strerror} viene usata passando \var{errno} come parametro;
@@ -2388,7 +2401,7 @@ programma e che 
 \func{strerror}; per questo motivo non è rientrante e nel caso si usino i
 thread è provvista\footnote{questa funzione è la versione prevista dalle
   \acr{glibc}, ed effettivamente definita in \file{string.h}, ne esiste una
-  analoga nello standard SUSv3 (quella riportata dalla man page), che
+  analoga nello standard SUSv3 (quella riportata dalla pagina di manuale), che
   restituisce \code{int} al posto di \code{char *}, e che tronca la stringa
   restituita a \param{size}.} una versione apposita:
 \begin{prototype}{string.h}