Aggiornamento date copyright più TODO 5.3
[gapil.git] / errors.tex
index e10acc27678128f4c0db46de92b8ca8250084740..2aa52240b30bbe0b41e2ab8ce9dcd969a2b90db5 100644 (file)
@@ -1,6 +1,6 @@
 %% errors.tex
 %%
-%% Copyright (C) 2000-2012 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2019 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 "Un preambolo",
 
 Si riportano in questa appendice tutti i codici di errore. Essi sono
 accessibili attraverso l'inclusione del file di header \headfile{errno.h}, che
-definisce anche la \index{variabili!globali} 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 dell'errore, qualora necessarie per casi
-specifici, possono essere trovate nella descrizione del prototipo della
-funzione per cui detto errore si è verificato.
+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
+dell'errore, qualora necessarie per casi specifici, possono essere trovate
+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
@@ -36,109 +36,111 @@ In questa sezione sono raccolti i codici restituiti dalle \textit{system call}
 attinenti ad errori che riguardano operazioni specifiche relative alla
 gestione dei file.
 
-\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
-\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.
-\item[\errcode{ENOENT} \textit{No such file or directory}.] Il file indicato
-  dal \textit{pathname} non esiste: o una delle componenti non esiste o il
-  \textit{pathname} contiene un link simbolico spezzato.  Errore tipico di un
-  riferimento ad un file che si suppone erroneamente essere esistente.
-\item[\errcode{EIO} \textit{Input/output error}.] Errore di input/output:
-  usato 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.
-\item[\errcode{ENOEXEC} \textit{Invalid executable file format}.] Il file non
-  ha un formato eseguibile, è un errore riscontrato dalle funzioni
-  \func{exec}.
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
+\item[\errcode{EACCES} \textit{Permission denied}.] Permesso negato; l'accesso
+  al file o alla directory non è consentito: i permessi del file o della
+  directory o quelli necessari ad attraversare un \textit{pathname} non
+  consentono l'operazione richiesta. 
 \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
   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
-  directory non consentono l'operazione richiesta.
-\item[\errcode{ELOOP} \textit{Too many symbolic links encountered}.] Ci sono
-  troppi link simbolici nella risoluzione di un \textit{pathname}.
-\item[\errcode{ENAMETOOLONG} \textit{File name too long}.] Si è indicato un
-  \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
-  file ordinario).
-\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
-  link diretto che attraversa due filesystem differenti.
-\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{EDQUOT} \textit{Quota exceeded}.] Si è ecceduta la quota di
+  disco dell'utente, usato sia per lo spazio disco che per il numero di
+  \textit{inode}.
+\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{EFBIG} \textit{File too big}.] Si è ecceduto il limite imposto
+  dal sistema sulla dimensione massima che un file può avere.
+\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 \textit{sticky bit} su un file che non è una
+  directory.
+\item[\errcode{EIO} \textit{Input/output error}.] Errore di input/output:
+  usato per riportare errori hardware in lettura/scrittura su un dispositivo.
 \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{ELOOP} \textit{Too many symbolic links encountered}.] Ci sono
+  troppi link simbolici nella risoluzione di un \textit{pathname}.
 \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
   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},
     vedi sez.~\ref{sec:sys_limits}.}
+\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{ENAMETOOLONG} \textit{File name too long}.] Si è indicato un
+  \textit{pathname} troppo lungo per un file o una directory.
 \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
   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
-  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{ENODEV} \textit{No such device}.] Si è indicato un tipo di
+  device sbagliato ad una funzione che ne richiede uno specifico.
+\item[\errcode{ENOENT} \textit{No such file or directory}.] Il file indicato
+  dal \textit{pathname} non esiste: o una delle componenti non esiste o il
+  \textit{pathname} contiene un link simbolico spezzato.  Errore tipico di un
+  riferimento ad un file che si suppone erroneamente essere esistente.
+\item[\errcode{ENOEXEC} \textit{Invalid executable file format}.] Il file non
+  ha un formato eseguibile, è un errore riscontrato dalle funzioni
+  \func{exec}.
+\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{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.
-\item[\errcode{ESPIPE} \textit{Invalid seek operation}.] Si cercato di
-  eseguire una \func{lseek} su un file che non supporta questa operazione (ad
-  esempio su una \textit{pipe}, da cui il nome).
-\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},
-  vedi sez.~\ref{sec:sys_limits}.
-\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 \signal{SIGPIPE}, la cui azione predefinita è
-  terminare il programma; pertanto non si potrà vedere questo errore fintanto
-  che \signal{SIGPIPE} non viene gestito o bloccato.
+\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{ENOTDIR} \textit{Not a directory}.] Si è specificato un file
+  che non è una directory in una operazione che richiede una directory.
 \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
-  dell'utente.
+\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{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.
+\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.
+\item[\errcode{EPIPE} \textit{Broken pipe}.] Non c'è un processo che stia
+  leggendo l'altro capo della \textit{pipe}. Ogni funzione che restituisce
+  questo errore genera anche un segnale \signal{SIGPIPE}, la cui azione
+  predefinita è terminare il programma; pertanto non si potrà vedere questo
+  errore fintanto che \signal{SIGPIPE} non viene gestito o bloccato.
+\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{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{ESPIPE} \textit{Invalid seek operation}.] Si cercato di
+  eseguire una \func{lseek} su un file che non supporta questa operazione (ad
+  esempio su una \textit{pipe}, da cui il nome).
 \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
   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
-  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ò
-  risultare da un'operazione su un server NFS di un altro sistema.
-\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.
+\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{EUSERS} \textit{Too many users}.] Troppi utenti, il sistema delle
+  quote rileva troppi utenti nel sistema.
+\item[\errcode{EXDEV} \textit{Cross-device link}.] Si è tentato di creare un
+  link diretto che attraversa due filesystem differenti.
 \end{basedescript}
 
 \section{Gli errori dei processi}
@@ -148,10 +150,7 @@ In questa sezione sono raccolti i codici restituiti dalle \textit{system call}
 attinenti ad errori che riguardano operazioni specifiche relative alla
 gestione dei processi.
 
-\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
-\item[\errcode{ESRCH} \textit{No process matches the specified process ID}.]
-  Non esiste un processo o un \itindex{process~group} \textit{process group}
-  corrispondenti al valore dell'identificativo specificato.
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
 \item[\errcode{E2BIG} \textit{Argument list too long}.] La lista degli
   argomenti passati è troppo lunga: è una condizione prevista da POSIX quando
   la lista degli argomenti passata ad una delle funzioni \func{exec} occupa
@@ -163,6 +162,9 @@ gestione dei processi.
   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. 
+\item[\errcode{ESRCH} \textit{No process matches the specified process ID}.]
+  Non esiste un processo o un \textit{process group} corrispondenti al valore
+  dell'identificativo specificato.
 \end{basedescript}
 
 
@@ -173,36 +175,7 @@ In questa sezione sono raccolti i codici restituiti dalle \textit{system call}
 attinenti ad errori che riguardano operazioni specifiche relative alla
 gestione dei socket e delle connessioni di rete.
 
-\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
-\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.
-\item[\errcode{EPROTOTYPE} \textit{Protocol wrong type for socket}.]
-  Protocollo 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
-  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.
-\item[\errcode{EOPNOTSUPP} \textit{Operation not supported on transport
-    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 è
-  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.
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
 \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).
@@ -210,50 +183,75 @@ gestione dei socket e delle connessioni di rete.
     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{ENETRESET} \textit{Network dropped connection because of
-    reset}.]  Una connessione è stata cancellata perché l'host remoto è
-  caduto.
+\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.
 \item[\errcode{ECONNABORTED} \textit{Software caused connection abort}.] Una
   connessione è stata abortita localmente. 
+\item[\errcode{ECONNREFUSED} \textit{Connection refused}.] Un host remoto ha
+  rifiutato la connessione (in genere dipende dal fatto che non c'è un server
+  per soddisfare il servizio richiesto).  
 \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{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.
+\item[\errcode{EISCONN} \textit{Transport endpoint is already connected}.] Si
+  è tentato di connettere un socket che è già connesso.
+\item[\errcode{EMSGSIZE} \textit{Message too long}.] Le dimensioni di un
+  messaggio inviato su un socket sono eccedono la massima lunghezza supportata.
+\item[\errcode{ENETDOWN} \textit{Network is down}.] L'operazione sul socket è
+  fallita perché la rete è sconnessa.
+\item[\errcode{ENETRESET} \textit{Network dropped connection because of
+    reset}.]  Una connessione è stata cancellata perché l'host remoto è
+  caduto.
+\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{ENOBUFS} \textit{No buffer space available}.] Tutti i buffer per
   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
   dell'altro.
-\item[\errcode{EISCONN} \textit{Transport endpoint is already connected}.] Si
-  è tentato di connettere un socket che è già connesso.
+\item[\errcode{ENOPROTOOPT} \textit{Protocol not available}.] Protocollo non
+  disponibile. Si è richiesta un'opzione per il socket non disponibile con il
+  protocollo usato.
 \item[\errcode{ENOTCONN} \textit{Transport endpoint is not connected}.] Il
   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 indirizzo di destinazione predefinito per il socket. Si ottiene questo
-  errore mandando dato su un socket senza connessione senza averne prima
-  specificato una destinazione.
+\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{EOPNOTSUPP} \textit{Operation not supported on transport
+    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 è
+  supportata.
+\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{EPROTOTYPE} \textit{Protocol wrong type for socket}.]
+  Protocollo sbagliato per il socket. Il socket usato non supporta il
+  protocollo di comunicazione richiesto.
 \item[\errcode{ESHUTDOWN} \textit{Cannot send after transport endpoint
     shutdown}.] Il socket su cui si cerca di inviare dei dati ha avuto uno
   shutdown.
-\item[\errcode{ETOOMANYREFS} \textit{Too many references: cannot splice}.] La
-  \acr{glibc} dice ???
+\item[\errcode{ESOCKTNOSUPPORT} \textit{Socket type not supported}.] Socket
+  non supportato. Il tipo di socket scelto non è supportato.
 \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
-  per soddisfare il servizio richiesto).  
-\item[\errcode{EHOSTDOWN} \textit{Host is down}.] L'host remoto di una
-  connessione è giù.
-\item[\errcode{EHOSTUNREACH} \textit{No route to host}.]  L'host remoto di una
-  connessione non è raggiungibile.
+\item[\errcode{ETOOMANYREFS} \textit{Too many references: cannot splice}.] La
+  \acr{glibc} dice ???
 \end{basedescript}
 
 
@@ -263,32 +261,7 @@ In questa sezione sono raccolti i codici restituiti dalle \textit{system call}
 attinenti ad errori generici, si trovano qui tutti i codici di errore non
 specificati nelle sezioni precedenti.
 
-\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
-\item[\errcode{EINTR} \textit{Interrupted function call}.] Una funzione di
-  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
-  chiamata alla funzione.
-\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
-  avrebbe il blocco.
-\item[\errcode{EFAULT} \textit{Bad address}.] Una stringa passata come
-  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} (\signal{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
-  sono definite.
-\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.
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
 \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:
@@ -307,11 +280,22 @@ specificati nelle sezioni precedenti.
     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.
+\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{EDEADLK} \textit{Deadlock avoided}.] L'allocazione di una
+  risorsa avrebbe causato un \textit{deadlock}. Non sempre 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
+  situazione provoca direttamente l'emissione di un segnale di \textit{segment
+    violation} (\signal{SIGSEGV}).
+\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{EILSEQ} \textit{Illegal byte sequence}.] Nella decodifica di un
+  carattere esteso si è avuta una sequenza errata o incompleta o si è
+  specificato un valore non valido.
 \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
@@ -320,9 +304,17 @@ specificati nelle sezioni precedenti.
   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{EINTR} \textit{Interrupted function call}.] Una funzione di
+  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
+  chiamata alla funzione.
+\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{ENOMEM} \textit{No memory available}.] Il kernel non è in grado
+  di allocare ulteriore memoria per completare l'operazione richiesta.
 \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 è
@@ -333,13 +325,18 @@ specificati nelle sezioni precedenti.
   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.
-\item[\errcode{EILSEQ} \textit{Illegal byte sequence}.] Nella decodifica di un
-  carattere esteso si è avuta una sequenza errata o incompleta o si è
-  specificato un valore non valido.
+\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{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.
 \end{basedescript}
 
 
-\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
 % definiti nel manuale delle glibc ma inesistenti in linux/errno.h
 %\item[\errcode{EBADRPC} \textit{}.] 
 %\item[\errcode{ERPCMISMATCH} \textit{}.] 
@@ -362,24 +359,24 @@ errore che arriva ad una funzione di lettura che opera su uno stream. Non
 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.
-
 \item[\errcode{EIDRM} \textit{Identifier removed}.] Indica che l'oggetto del
   \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
-  usato come sinonimo di \errcode{ENOATTR}. 
+\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.
 
 \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{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 però viene usato
+  come sinonimo di \errcode{ENOATTR}.
+
 \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