Passaggio a UTF-8 dei sorgenti
[gapil.git] / errors.tex
index 7598a88f36cac0be278e219ca15fa4a3a036265f..c8f07eea9dc255140bd42c6626bf65b925155c81 100644 (file)
@@ -16,17 +16,17 @@ Si riportano in questa appendice tutti i codici di errore. Essi sono
 accessibili attraverso l'inclusione del file di header \file{errno.h}, che
 definisce anche la variabile globale \var{errno}. Per ogni errore definito
 riporteremo la stringa stampata da \func{perror} ed una breve spiegazione. Si
-tenga presente che spiegazioni più particolareggiate del significato
+tenga presente che spiegazioni più particolareggiate del significato
 dell'errore, qualora necessarie per casi specifici, possono essere trovate
-nella descrizione del prototipo della funzione per cui detto errore si è
+nella descrizione del prototipo della funzione per cui detto errore si è
 verificato.
 
 I codici di errore sono riportati come costanti di tipo \ctyp{int}, i valori
 delle costanti sono definiti da macro di preprocessore nel file citato, e
-possono variare da architettura a architettura; è pertanto necessario
+possono variare da architettura a architettura; è pertanto necessario
 riferirsi ad essi tramite i nomi simbolici. Le funzioni \func{perror} e
 \func{strerror} (vedi sez.~\ref{sec:sys_strerror}) possono essere usate per
-ottenere dei messaggi di errore più espliciti.
+ottenere dei messaggi di errore più espliciti.
 
 
 \section{Gli errori dei file}
@@ -37,9 +37,9 @@ attinenti ad errori che riguardano operazioni specifiche relative alla
 gestione dei file.
 
 \begin{description}
-\item \errcode{EPERM} \textit{Operation not permitted}. L'operazione non è
+\item \errcode{EPERM} \textit{Operation not permitted}. L'operazione non è
   permessa: solo il proprietario del file o un processo con sufficienti
-  privilegi può eseguire l'operazione.
+  privilegi può eseguire l'operazione.
 \item \errcode{ENOENT} \textit{No such file or directory}. Il file indicato
   dal \itindex{pathname} \textit{pathname} non esiste: o una delle componenti
   non esiste o il \textit{pathname} contiene un link simbolico spezzato.
@@ -49,98 +49,98 @@ gestione dei file.
   per riportare errori hardware in lettura/scrittura su un dispositivo.
 \item \errcode{ENXIO} \textit{No such device or address}. Dispositivo
   inesistente: il sistema ha tentato di usare un dispositivo attraverso il
-  file specificato, ma non lo ha trovato. Può significare che il file di
-  dispositivo non è corretto, che il modulo relativo non è stato caricato nel
-  kernel, o che il dispositivo è fisicamente assente o non funzionante.
+  file specificato, ma non lo ha trovato. Può significare che il file di
+  dispositivo non è corretto, che il modulo relativo non è stato caricato nel
+  kernel, o che il dispositivo è fisicamente assente o non funzionante.
 \item \errcode{ENOEXEC} \textit{Invalid executable file format}. Il file non ha
-  un formato eseguibile, è un errore riscontrato dalle funzioni \func{exec}.
+  un formato eseguibile, è un errore riscontrato dalle funzioni \func{exec}.
 \item \errcode{EBADF} \textit{Bad file descriptor}. File descriptor non valido:
-  si è usato un file descriptor inesistente, o aperto in sola lettura per
-  scrivere, o viceversa, o si è cercato di eseguire un'operazione non
+  si è usato un file descriptor inesistente, o aperto in sola lettura per
+  scrivere, o viceversa, o si è cercato di eseguire un'operazione non
   consentita per quel tipo di file descriptor.
 \item \errcode{EACCES} \textit{Permission denied}. Permesso negato; l'accesso
-  al file o alla directory non è consentito: i permessi del file o della
+  al file o alla directory non è consentito: i permessi del file o della
   directory non consentono l'operazione richiesta.
 \item \errcode{ELOOP} \textit{Too many symbolic links encountered}. Ci sono
   troppi link simbolici nella risoluzione di un
   \itindex{pathname}\textit{pathname}.
-\item \errcode{ENAMETOOLONG} \textit{File name too long}. Si è indicato un
+\item \errcode{ENAMETOOLONG} \textit{File name too long}. Si è indicato un
   \itindex{pathname} \textit{pathname} troppo lungo per un file o una
   directory.
-\item \errcode{ENOTBLK} \textit{Block device required}. Si è specificato un
-  file che non è un \textit{block device} in un contesto in cui era necessario
-  specificare un \textit{block device} (ad esempio si è tentato di montare un
+\item \errcode{ENOTBLK} \textit{Block device required}. Si è specificato un
+  file che non è un \textit{block device} in un contesto in cui era necessario
+  specificare un \textit{block device} (ad esempio si è tentato di montare un
   file ordinario).
-\item \errcode{EEXIST} \textit{File exists}. Si è specificato un file esistente
+\item \errcode{EEXIST} \textit{File exists}. Si è specificato un file esistente
   in un contesto in cui ha senso solo specificare un nuovo file.
 \item \errcode{EBUSY} \textit{Resource busy}. Una risorsa di sistema che non
-  può essere condivisa è occupata. Ad esempio si è tentato di cancellare la
-  directory su cui si è montato un filesystem.
-\item \errcode{EXDEV} \textit{Cross-device link}. Si è tentato di creare un
+  può essere condivisa è occupata. Ad esempio si è tentato di cancellare la
+  directory su cui si è montato un filesystem.
+\item \errcode{EXDEV} \textit{Cross-device link}. Si è tentato di creare un
   link diretto che attraversa due filesystem differenti.
-\item \errcode{ENODEV} \textit{No such device}. Si è indicato un tipo di device
+\item \errcode{ENODEV} \textit{No such device}. Si è indicato un tipo di device
   sbagliato ad una funzione che ne richiede uno specifico.
-\item \errcode{ENOTDIR} \textit{Not a directory}. Si è specificato un file che
-  non è una directory in una operazione che richiede una directory.
-\item \errcode{EISDIR} \textit{Is a directory}. Il file specificato è una
-  directory; non può essere aperto in scrittura, né si possono creare o
+\item \errcode{ENOTDIR} \textit{Not a directory}. Si è specificato un file che
+  non è una directory in una operazione che richiede una directory.
+\item \errcode{EISDIR} \textit{Is a directory}. Il file specificato è una
+  directory; non può essere aperto in scrittura, né si possono creare o
   rimuovere link diretti ad essa.
 \item \errcode{EMFILE} \textit{Too many open files}. Il processo corrente ha
-  troppi file aperti e non può aprirne altri. Anche i descrittori duplicati ed
+  troppi file aperti e non può aprirne altri. Anche i descrittori duplicati ed
   i socket vengono tenuti in conto.\footnote{il numero massimo di file aperti
-    è controllabile dal sistema; in Linux si può impostare usando il comando
-    \cmd{ulimit}, esso è in genere indicato dalla costante \const{OPEN\_MAX},
+    è controllabile dal sistema; in Linux si può impostare usando il comando
+    \cmd{ulimit}, esso è in genere indicato dalla costante \const{OPEN\_MAX},
     vedi sez.~\ref{sec:sys_limits}.}
 \item \errcode{ENFILE} \textit{File table overflow}. Il sistema ha troppi file
   aperti in contemporanea. Si tenga presente che anche i socket contano come
-  file. Questa è una condizione temporanea, ed è molto difficile che si
+  file. Questa è una condizione temporanea, ed è molto difficile che si
   verifichi nei sistemi moderni.
-\item \errcode{ENOTTY} \textit{Not a terminal}. Si è tentata una operazione di
-  controllo relativa ad un terminale su un file che non lo è.
-\item \errcode{ETXTBSY} \textit{Text file busy}. Si è cercato di eseguire un
-  file che è aperto in scrittura, o di scrivere su un file che è in
+\item \errcode{ENOTTY} \textit{Not a terminal}. Si è tentata una operazione di
+  controllo relativa ad un terminale su un file che non lo è.
+\item \errcode{ETXTBSY} \textit{Text file busy}. Si è cercato di eseguire un
+  file che è aperto in scrittura, o di scrivere su un file che è in
   esecuzione.
-\item \errcode{EFBIG} \textit{File too big}. Si è ecceduto il limite imposto
-  dal sistema sulla dimensione massima che un file può avere.
+\item \errcode{EFBIG} \textit{File too big}. Si è ecceduto il limite imposto
+  dal sistema sulla dimensione massima che un file può avere.
 \item \errcode{ENOSPC} \textit{No space left on device}. La directory in cui si
-  vuole creare il link non ha spazio per ulteriori voci, o si è cercato di
-  scrivere o di creare un nuovo file su un dispositivo che è già pieno.
+  vuole creare il link non ha spazio per ulteriori voci, o si è cercato di
+  scrivere o di creare un nuovo file su un dispositivo che è già pieno.
 \item \errcode{ESPIPE} \textit{Invalid seek operation}. Si cercato di eseguire
   una \func{seek} su un file che non supporta questa operazione (ad esempio su
   una pipe). 
-\item \errcode{EROFS} \textit{Read-only file system}.  Si è cercato di
+\item \errcode{EROFS} \textit{Read-only file system}.  Si è cercato di
   eseguire una operazione di scrittura su un file o una directory che risiede
   su un filesystem montato un sola lettura.
-\item \errcode{EMLINK} \textit{Too many links}. Ci sono già troppi link al
-  file (il numero massimo è specificato dalla variabile \const{LINK\_MAX},
+\item \errcode{EMLINK} \textit{Too many links}. Ci sono già troppi link al
+  file (il numero massimo è specificato dalla variabile \const{LINK\_MAX},
   vedi sez.~\ref{sec:sys_limits}).
-\item \errcode{EPIPE} \textit{Broken pipe}. Non c'è un processo che stia
+\item \errcode{EPIPE} \textit{Broken pipe}. Non c'è un processo che stia
   leggendo l'altro capo della pipe. Ogni funzione che restituisce questo
-  errore genera anche un segnale \const{SIGPIPE}, la cui azione predefinita è
-  terminare il programma; pertanto non si potrà vedere questo errore fintanto
+  errore genera anche un segnale \const{SIGPIPE}, la cui azione predefinita è
+  terminare il programma; pertanto non si potrà vedere questo errore fintanto
   che \const{SIGPIPE} non viene gestito o bloccato.
-\item \errcode{ENOTEMPTY} \textit{Directory not empty}. La directory non è
-  vuota quando l'operazione richiede che lo sia. È l'errore tipico che si ha
+\item \errcode{ENOTEMPTY} \textit{Directory not empty}. La directory non è
+  vuota quando l'operazione richiede che lo sia. È l'errore tipico che si ha
   quando si cerca di cancellare una directory contenente dei file.
 \item \errcode{EUSERS} \textit{Too many users}. Troppi utenti, il sistema delle
   quote rileva troppi utenti nel sistema.
-\item \errcode{EDQUOT} \textit{Quota exceeded}. Si è ecceduta la quota di disco
+\item \errcode{EDQUOT} \textit{Quota exceeded}. Si è ecceduta la quota di disco
   dell'utente.
 \item \errcode{ESTALE} \textit{Stale NFS file handle}. Indica un problema
   interno a NFS causato da cambiamenti del filesystem del sistema remoto. Per
-  recuperare questa condizione in genere è necessario smontare e rimontare il
+  recuperare questa condizione in genere è necessario smontare e rimontare il
   filesystem NFS.
-\item \errcode{EREMOTE} \textit{Object is remote}. Si è fatto un tentativo di
-  montare via NFS un filesystem remoto con un nome  che già specifica un
+\item \errcode{EREMOTE} \textit{Object is remote}. Si è fatto un tentativo di
+  montare via NFS un filesystem remoto con un nome  che già specifica un
   filesystem montato via NFS. 
-\item \errcode{ENOLCK} \textit{No locks available}. È usato dalle utilità per
-  la gestione del file locking; non viene generato da un sistema GNU, ma può
+\item \errcode{ENOLCK} \textit{No locks available}. È usato dalle utilità per
+  la gestione del file locking; non viene generato da un sistema GNU, ma può
   risultare da un'operazione su un server NFS di un altro sistema.
-\item \errcode{EFTYPE} \textit{Inappropriate file type or format}. Il file è
+\item \errcode{EFTYPE} \textit{Inappropriate file type or format}. Il file è
   di tipo sbagliato rispetto all'operazione richiesta o un file di dati ha un
   formato sbagliato. Alcuni sistemi restituiscono questo errore quando si
   cerca di impostare lo \itindex{sticky~bit} \textit{sticky bit} su un file che
-  non è una directory.
+  non è una directory.
 \end{description}
 
 
@@ -156,15 +156,15 @@ gestione dei processi.
   Non esiste un processo o un \itindex{process~group} \textit{process group}
   corrispondenti al valore dell'identificativo specificato.
 \item \errcode{E2BIG} \textit{Argument list too long}. La lista degli
-  argomenti passati è troppo lunga: è una condizione prevista da POSIX quando
+  argomenti passati è troppo lunga: è una condizione prevista da POSIX quando
   la lista degli argomenti passata ad una delle funzioni \func{exec} occupa
-  troppa memoria, non può mai accadere in GNU/Linux.
+  troppa memoria, non può mai accadere in GNU/Linux.
 \item \errcode{ECHILD} \textit{There are no child processes}. Non esistono
   processi figli di cui attendere la terminazione. Viene rilevato dalle
   funzioni \func{wait} e \func{waitpid} (vedi sez.~\ref{sec:proc_wait}).
 \item \errcode{EPROCLIM} \textit{Too many processes}.  Il limite dell'utente
-  per nuovi processi (vedi sez.~\ref{sec:sys_resource_limit}) sarà ecceduto
-  alla prossima \func{fork}; è un codice di errore di BSD, che non viene
+  per nuovi processi (vedi sez.~\ref{sec:sys_resource_limit}) sarà ecceduto
+  alla prossima \func{fork}; è un codice di errore di BSD, che non viene
   utilizzato al momento su Linux. 
 \end{description}
 
@@ -178,8 +178,8 @@ gestione dei socket e delle connessioni di rete.
 
 
 \begin{description}
-\item \errcode{ENOTSOCK} \textit{Socket operation on non-socket}. Si è tentata
-  un'operazione su un file descriptor che non è un socket quando invece era
+\item \errcode{ENOTSOCK} \textit{Socket operation on non-socket}. Si è tentata
+  un'operazione su un file descriptor che non è un socket quando invece era
   richiesto un socket.
 \item \errcode{EMSGSIZE} \textit{Message too long}. Le dimensioni di un
   messaggio inviato su un socket sono eccedono la massima lunghezza supportata.
@@ -187,58 +187,58 @@ gestione dei socket e delle connessioni di rete.
   sbagliato per il socket. Il socket usato non supporta il protocollo di
   comunicazione richiesto. 
 \item \errcode{ENOPROTOOPT} \textit{Protocol not available}. Protocollo non
-  disponibile. Si è richiesta un'opzione per il socket non disponibile con il
+  disponibile. Si è richiesta un'opzione per il socket non disponibile con il
   protocollo usato.
 \item \errcode{EPROTONOSUPPORT} \textit{Protocol not supported}. Protocollo non
   supportato. Il tipo di socket non supporta il protocollo richiesto (un
   probabile errore nella specificazione del protocollo).
 \item \errcode{ESOCKTNOSUPPORT} \textit{Socket type not supported}. Socket non
-  supportato. Il tipo di socket scelto non è supportato.
+  supportato. Il tipo di socket scelto non è supportato.
 \item \errcode{EOPNOTSUPP} \textit{Operation not supported on transport
-    endpoint}. L'operazione richiesta non è supportata. Alcune funzioni non
+    endpoint}. L'operazione richiesta non è supportata. Alcune funzioni non
   hanno senso per tutti i tipi di socket, ed altre non sono implementate per
   tutti i protocolli di trasmissione. Questo errore quando un socket non
   supporta una particolare operazione, e costituisce una indicazione generica
   che il server non sa cosa fare per la chiamata effettuata.
 \item \errcode{EPFNOSUPPORT} \textit{Protocol family not supported}. Famiglia
-  di protocolli non supportata. La famiglia di protocolli richiesta non è
+  di protocolli non supportata. La famiglia di protocolli richiesta non è
   supportata.
 \item \errcode{EAFNOSUPPORT} \textit{Address family not supported by protocol}.
   Famiglia di indirizzi non supportata. La famiglia di indirizzi richiesta non
-  è supportata, o è inconsistente con il protocollo usato dal socket.
+  è supportata, o è inconsistente con il protocollo usato dal socket.
 \item \errcode{EADDRINUSE} \textit{Address already in use}. L'indirizzo del
-  socket richiesto è già utilizzato (ad esempio si è eseguita \func{bind}
-  su una porta già in uso).
+  socket richiesto è già utilizzato (ad esempio si è eseguita \func{bind}
+  su una porta già in uso).
 \item \errcode{EADDRNOTAVAIL} \textit{Cannot assign requested
-    address}.  L'indirizzo richiesto non è disponibile (ad esempio si
-  è cercato di dare al socket un nome che non corrisponde al nome
+    address}.  L'indirizzo richiesto non è disponibile (ad esempio si
+  è cercato di dare al socket un nome che non corrisponde al nome
   della stazione locale), o l'interfaccia richiesta non esiste.
-\item \errcode{ENETDOWN} \textit{Network is down}. L'operazione sul socket è
-  fallita perché la rete è sconnessa.
-\item \errcode{ENETUNREACH} \textit{Network is unreachable}. L'operazione è
-  fallita perché l'indirizzo richiesto è irraggiungibile (ad esempio la
-  sottorete della stazione remota è irraggiungibile).
+\item \errcode{ENETDOWN} \textit{Network is down}. L'operazione sul socket è
+  fallita perché la rete è sconnessa.
+\item \errcode{ENETUNREACH} \textit{Network is unreachable}. L'operazione è
+  fallita perché l'indirizzo richiesto è irraggiungibile (ad esempio la
+  sottorete della stazione remota è irraggiungibile).
 \item \errcode{ENETRESET} \textit{Network dropped connection because of reset}.
-  Una connessione è stata cancellata perché l'host remoto è caduto.
+  Una connessione è stata cancellata perché l'host remoto è caduto.
 \item \errcode{ECONNABORTED} \textit{Software caused connection abort}. Una
-  connessione è stata abortita localmente. 
-\item \errcode{ECONNRESET} \textit{Connection reset by peer}. Una connessione è
+  connessione è stata abortita localmente. 
+\item \errcode{ECONNRESET} \textit{Connection reset by peer}. Una connessione è
   stata chiusa per ragioni fuori dal controllo dell'host locale, come il
   riavvio di una macchina remota o un qualche errore non recuperabile sul
   protocollo.
 \item \errcode{ENOBUFS} \textit{No buffer space available}. Tutti i buffer per
-  le operazioni di I/O del kernel sono occupati. In generale questo errore è
+  le operazioni di I/O del kernel sono occupati. In generale questo errore è
   sinonimo di \errcode{ENOMEM}, ma attiene alle funzioni di input/output. In
-  caso di operazioni sulla rete si può ottenere questo errore invece
+  caso di operazioni sulla rete si può ottenere questo errore invece
   dell'altro.
-\item \errcode{EISCONN} \textit{Transport endpoint is already connected}. Si è
-  tentato di connettere un socket che è già connesso.
+\item \errcode{EISCONN} \textit{Transport endpoint is already connected}. Si è
+  tentato di connettere un socket che è già connesso.
 \item \errcode{ENOTCONN} \textit{Transport endpoint is not connected}. Il
-  socket non è connesso a niente. Si ottiene questo errore quando si cerca di
+  socket non è connesso a niente. Si ottiene questo errore quando si cerca di
   trasmettere dati su un socket senza avere specificato in precedenza la loro
   destinazione. Nel caso di socket senza connessione (ad esempio socket UDP)
-  l'errore che si ottiene è \errcode{EDESTADDRREQ}.
-\item \errcode{EDESTADDRREQ} \textit{Destination address required}. Non c'è un
+  l'errore che si ottiene è \errcode{EDESTADDRREQ}.
+\item \errcode{EDESTADDRREQ} \textit{Destination address required}. Non c'è un
   indirizzo di destinazione predefinito per il socket. Si ottiene questo
   errore mandando dato su un socket senza connessione senza averne prima
   specificato una destinazione.
@@ -250,12 +250,12 @@ gestione dei socket e delle connessioni di rete.
 \item \errcode{ETIMEDOUT} \textit{Connection timed out}. Un'operazione sul
   socket non ha avuto risposta entro il periodo di timeout.
 \item \errcode{ECONNREFUSED} \textit{Connection refused}. Un host remoto ha
-  rifiutato la connessione (in genere dipende dal fatto che non c'è un server
+  rifiutato la connessione (in genere dipende dal fatto che non c'è un server
   per soddisfare il servizio richiesto).  
 \item \errcode{EHOSTDOWN} \textit{Host is down}. L'host remoto di una
-  connessione è giù.
+  connessione è giù.
 \item \errcode{EHOSTUNREACH} \textit{No route to host}.  L'host remoto di una
-  connessione non è raggiungibile.
+  connessione non è raggiungibile.
 \end{description}
 
 \section{Errori generici}
@@ -266,76 +266,76 @@ specificati nelle sezioni precedenti.
 
 \begin{description}
 \item \errcode{EINTR} \textit{Interrupted function call}. Una funzione di
-  libreria è stata interrotta. In genere questo avviene causa di un segnale
+  libreria è stata interrotta. In genere questo avviene causa di un segnale
   asincrono al processo che impedisce la conclusione della chiamata, la
   funzione ritorna con questo errore una volta che si sia correttamente
-  eseguito il gestore del segnale. In questo caso è necessario ripetere la
+  eseguito il gestore del segnale. In questo caso è necessario ripetere la
   chiamata alla funzione.
-\item \errcode{ENOMEM} \textit{No memory available}. Il kernel non è in grado
+\item \errcode{ENOMEM} \textit{No memory available}. Il kernel non è in grado
   di allocare ulteriore memoria per completare l'operazione richiesta.
 \item \errcode{EDEADLK} \textit{Deadlock avoided}. L'allocazione di una
   risorsa avrebbe causato un \itindex{deadlock} \textit{deadlock}. Non sempre
-  il sistema è in grado di riconoscere queste situazioni, nel qual caso si
+  il sistema è in grado di riconoscere queste situazioni, nel qual caso si
   avrebbe il blocco.
 \item \errcode{EFAULT} \textit{Bad address}. Una stringa passata come
-  argomento è fuori dello spazio di indirizzi del processo, in genere questa
+  argomento è fuori dello spazio di indirizzi del processo, in genere questa
   situazione provoca direttamente l'emissione di un segnale di
   \itindex{segment~violation} \textit{segment violation} (\const{SIGSEGV}).
 \item \errcode{EINVAL} \textit{Invalid argument}. Errore utilizzato per
   segnalare vari tipi di problemi dovuti all'aver passato un argomento
   sbagliato ad una funzione di libreria.
-\item \errcode{EDOM} \textit{Domain error}. È usato dalle funzioni matematiche
-  quando il valore di un argomento è al di fuori dell'intervallo in cui esse
+\item \errcode{EDOM} \textit{Domain error}. È usato dalle funzioni matematiche
+  quando il valore di un argomento è al di fuori dell'intervallo in cui esse
   sono definite.
-\item \errcode{ERANGE} \textit{Range error}. È usato dalle funzioni
-  matematiche quando il risultato dell'operazione non è rappresentabile nel
+\item \errcode{ERANGE} \textit{Range error}. È usato dalle funzioni
+  matematiche quando il risultato dell'operazione non è rappresentabile nel
   valore di ritorno a causa di un overflow o di un underflow.
-\item \errcode{EAGAIN} \textit{Resource temporarily unavailable}. La funzione è
+\item \errcode{EAGAIN} \textit{Resource temporarily unavailable}. La funzione è
   fallita ma potrebbe funzionare se la chiamata fosse ripetuta. Questo errore
   accade in due tipologie di situazioni:
   \begin{itemize}
-  \item Si è effettuata un'operazione che si sarebbe bloccata su un oggetto
-    che è stato posto in modalità non bloccante. Nei vecchi sistemi questo era
+  \item Si è effettuata un'operazione che si sarebbe bloccata su un oggetto
+    che è stato posto in modalità non bloccante. Nei vecchi sistemi questo era
     un codice diverso, \errcode{EWOULDBLOCK}. In genere questo ha a che fare
-    con file o socket, per i quali si può usare la funzione \func{select} per
+    con file o socket, per i quali si può usare la funzione \func{select} per
     vedere quando l'operazione richiesta (lettura, scrittura o connessione)
     diventa possibile.
-  \item Indica la carenza di una risorsa di sistema che non è al momento
-    disponibile (ad esempio \func{fork} può fallire con questo errore se si è
+  \item Indica la carenza di una risorsa di sistema che non è al momento
+    disponibile (ad esempio \func{fork} può fallire con questo errore se si è
     esaurito il numero di processi contemporanei disponibili). La ripetizione
     della chiamata in un periodo successivo, in cui la carenza della risorsa
-    richiesta può essersi attenuata, può avere successo. Questo tipo di
-    carenza è spesso indice di qualcosa che non va nel sistema, è pertanto
+    richiesta può essersi attenuata, può avere successo. Questo tipo di
+    carenza è spesso indice di qualcosa che non va nel sistema, è pertanto
     opportuno segnalare esplicitamente questo tipo di errori.
   \end{itemize}
 \item \errcode{EWOULDBLOCK} \textit{Operation would block}. Indica che
   l'operazione richiesta si bloccherebbe, ad esempio se si apre un file in
-  modalità non bloccante, una \func{read} restituirebbe questo errore per
-  indicare che non ci sono dati; in Linux è identico a \errcode{EAGAIN}, ma in
-  altri sistemi può essere specificato un valore diverso.
+  modalità non bloccante, una \func{read} restituirebbe questo errore per
+  indicare che non ci sono dati; in Linux è identico a \errcode{EAGAIN}, ma in
+  altri sistemi può essere specificato un valore diverso.
 \item \errcode{EINPROGRESS} \textit{Operation now in progress}. Operazione in
-  corso. Un'operazione che non può essere completata immediatamente è stata
-  avviata su un oggetto posto in modalità non-bloccante. Questo errore viene
+  corso. Un'operazione che non può essere completata immediatamente è stata
+  avviata su un oggetto posto in modalità non-bloccante. Questo errore viene
   riportato per operazioni che si dovrebbero sempre bloccare (come per una
   \func{connect}) e che pertanto non possono riportare \errcode{EAGAIN},
-  l'errore indica che l'operazione è stata avviata correttamente e occorrerà
-  del tempo perché si possa completare. La ripetizione della chiamata darebbe
+  l'errore indica che l'operazione è stata avviata correttamente e occorrerà
+  del tempo perché si possa completare. La ripetizione della chiamata darebbe
   luogo ad un errore \errcode{EALREADY}.
-\item \errcode{EALREADY} \textit{Operation already in progress}. L'operazione è
-  già in corso. Si è tentata un'operazione già in corso su un oggetto posto in
-  modalità non-bloccante.
+\item \errcode{EALREADY} \textit{Operation already in progress}. L'operazione è
+  già in corso. Si è tentata un'operazione già in corso su un oggetto posto in
+  modalità non-bloccante.
 \item \errcode{ENOSYS} \textit{Function not implemented}. Indica che la
-  funzione non è supportata o nelle librerie del C o nel kernel. Può dipendere
-  sia dalla mancanza di una implementazione, che dal fatto che non si è
-  abilitato l'opportuno supporto nel kernel; nel caso di Linux questo può
-  voler dire anche che un modulo necessario non è stato caricato nel sistema.
+  funzione non è supportata o nelle librerie del C o nel kernel. Può dipendere
+  sia dalla mancanza di una implementazione, che dal fatto che non si è
+  abilitato l'opportuno supporto nel kernel; nel caso di Linux questo può
+  voler dire anche che un modulo necessario non è stato caricato nel sistema.
 \item \errcode{ENOTSUP} \textit{Not supported}. Una funzione ritorna questo
-  errore quando gli argomenti sono validi ma l'operazione richiesta non è
+  errore quando gli argomenti sono validi ma l'operazione richiesta non è
   supportata. Questo significa che la funzione non implementa quel particolare
   comando o opzione o che, in caso di oggetti specifici (file descriptor o
-  altro) non è in grado di supportare i parametri richiesti.
+  altro) non è in grado di supportare i parametri richiesti.
 \item \errcode{EILSEQ} \textit{Illegal byte sequence}. Nella decodifica di un
-  carattere esteso si è avuta una sequenza errata o incompleta o si è
+  carattere esteso si è avuta una sequenza errata o incompleta o si è
   specificato un valore non valido.
 \end{description}
 
@@ -364,55 +364,55 @@ essendo gli stream definiti su Linux il kernel non genera mai questo tipo di
 messaggio. 
 
 \item \errcode{EMULTIHOP} \textit{Multihop attempted}. Definito da POSIX come
-  errore dovuto all'accesso a file remoti attraverso più macchine, quando ciò
-  non è consentito. Non viene mai generato su Linux.
+  errore dovuto all'accesso a file remoti attraverso più macchine, quando ciò
+  non è consentito. Non viene mai generato su Linux.
 
 \item \errcode{EIDRM} \textit{Identifier removed}. Indica che l'oggetto del
-  \textit{SysV IPC} a cui si fa riferimento è stato cancellato.
+  \textit{SysV IPC} a cui si fa riferimento è stato cancellato.
 
 \item \errcode{ENODATA} \textit{No data available}. Viene indicato da POSIX
   come restituito da una \func{read} eseguita su un file descriptor in
-  modalità non bloccante quando non ci sono dati. In realtà in questo caso su
-  Linux viene utilizzato \errcode{EAGAIN}. Lo stesso valore valore però viene
+  modalità non bloccante quando non ci sono dati. In realtà in questo caso su
+  Linux viene utilizzato \errcode{EAGAIN}. Lo stesso valore valore però viene
   usato come sinonimo di \errcode{ENOATTR}. 
 
-\item \errcode{ENOATTR} \textit{No such attribute}. È un codice di errore
+\item \errcode{ENOATTR} \textit{No such attribute}. È un codice di errore
   specifico di Linux utilizzato dalle funzioni per la gestione degli attributi
   estesi dei file (vedi sez.~\ref{sec:file_xattr}) quando il nome
   dell'attributo richiesto non viene trovato.
 
-\item \errcode{ENOLINK} \textit{Link has been severed}. È un errore il cui
-  valore è indicato come \textsl{riservato} nelle \textit{Single Unix
-    Specification}. Dovrebbe indicare l'impossibilità di accedere ad un file a
+\item \errcode{ENOLINK} \textit{Link has been severed}. È un errore il cui
+  valore è indicato come \textsl{riservato} nelle \textit{Single Unix
+    Specification}. Dovrebbe indicare l'impossibilità di accedere ad un file a
   causa di un errore sul collegamento di rete, ma non ci sono indicazioni
   precise del suo utilizzo. Per quanto riguarda Linux viene riportato nei
   sorgenti del kernel in alcune operazioni relative ad operazioni di rete. 
 
 \item \errcode{ENOMSG} \textit{No message of desired type}. Indica che in una
-  coda di messaggi del \textit{SysV IPC} non è presente nessun messaggio del
+  coda di messaggi del \textit{SysV IPC} non è presente nessun messaggio del
   tipo desiderato.
 
 \item \errcode{ENOSR} \textit{Out of streams resources}. Errore relativo agli
   \textit{STREAMS}, che indica l'assenza di risorse sufficienti a completare
   l'operazione richiesta. Quella degli \textit{STREAMS}\footnote{che non vanno
-    confusi con gli \textit{stream} di cap.~\ref{cha:files_std_interface}.}  è
-  interfaccia di programmazione originaria di System V, che non è implementata
+    confusi con gli \textit{stream} di cap.~\ref{cha:files_std_interface}.}  è
+  interfaccia di programmazione originaria di System V, che non è implementata
   da Linux, per cui questo errore non viene utilizzato.
 
 \item \errcode{ENOSTR} \textit{Device not a stream}. Altro errore relativo
   agli \textit{STREAMS}, anch'esso non utilizzato da Linux.
 
-\item \errcode{EOVERFLOW} \textit{Value too large for defined data type}. Si è
+\item \errcode{EOVERFLOW} \textit{Value too large for defined data type}. Si è
   chiesta la lettura di un dato dal \textit{SysV IPC} con \const{IPC\_STAT} ma
   il valore eccede la dimensione usata nel buffer di lettura.
 
-\item \errcode{EPROTO} \textit{Protocol error}. Indica che c'è stato un errore
+\item \errcode{EPROTO} \textit{Protocol error}. Indica che c'è stato un errore
   nel protocollo di rete usato dal socket; viene usato come errore generico
-  dall'interfaccia degli \textit{STREAMS} quando non si è in grado di
-  specificare un altro codice di errore che esprima più accuratamente la
+  dall'interfaccia degli \textit{STREAMS} quando non si è in grado di
+  specificare un altro codice di errore che esprima più accuratamente la
   situazione.
 
-\item \errcode{ETIME} \textit{Timer expired}. Indica che è avvenuto un timeout
+\item \errcode{ETIME} \textit{Timer expired}. Indica che è avvenuto un timeout
   nell'accesso ad una risorsa (ad esempio un semaforo). Compare nei sorgenti
   del kernel (in particolare per le funzioni relativa al bus USB) come
   indicazione di una mancata risposta di un dispositivo, con una descrizione