Prova di endianess
[gapil.git] / errors.tex
index b0e75dd2c1dee19f5fef592290b86ef02a4a80f9..f0e099e866d29d852668c4625a9b60390264d92e 100644 (file)
@@ -1,3 +1,13 @@
+%% errors.tex
+%%
+%% Copyright (C) 2000-2003 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{I codici di errore}
 \label{cha:errors}
 
 \chapter{I codici di errore}
 \label{cha:errors}
 
@@ -9,7 +19,7 @@ tenga presente che spiegazioni pi
 il caso specifico, possono essere trovate nella descrizione del prototipo
 della funzione.
 
 il caso specifico, possono essere trovate nella descrizione del prototipo
 della funzione.
 
-I codici di errore sono riportati come costanti di tipo \type{int}, i valori
+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
 riferirsi ad essi tramite i nomi simbolici. Le funzioni \func{perror} e
 delle costanti sono definiti da macro di preprocessore nel file citato, e
 possono variare da architettura a architettura; è pertanto necessario
 riferirsi ad essi tramite i nomi simbolici. Le funzioni \func{perror} e
@@ -25,96 +35,98 @@ attinenti ad errori che riguardano operazioni specifiche relative alla
 gestione dei file.
 
 \begin{description}
 gestione dei file.
 
 \begin{description}
-\item \macro{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.
   permessa: solo il proprietario del file o un processo con sufficienti
   privilegi può eseguire l'operazione.
-\item \macro{ENOENT} \textit{No such file or directory}. Il file indicato dal
+\item \errcode{ENOENT} \textit{No such file or directory}. Il file indicato dal
   pathname non esiste: o una delle componenti non esiste o il pathname
   contiene un link simbolico spezzato. Errore tipico di un riferimento ad un
   file che si suppone erroneamente essere esistente.
   pathname non esiste: o una delle componenti non esiste o il pathname
   contiene un link simbolico spezzato. Errore tipico di un riferimento ad un
   file che si suppone erroneamente essere esistente.
-\item \macro{EIO} \textit{Input/output error}. Errore di input/output: usato
+\item \errcode{EIO} \textit{Input/output error}. Errore di input/output: usato
   per riportare errori hardware in lettura/scrittura su un dispositivo.
   per riportare errori hardware in lettura/scrittura su un dispositivo.
-\item \macro{ENXIO} \textit{No such device or address}. Device 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 \macro{ENOEXEC} \textit{Invalid executable file format}. Il file non ha
+\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}.
   un formato eseguibile, è un errore riscontrato dalle funzioni \func{exec}.
-\item \macro{EBADF} \textit{Bad file descriptor}. File descriptor non valido:
+\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.
   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 \macro{EACCESS} \textit{Permission denied}. Permesso negato; l'accesso
+\item \errcode{EACCES} \textit{Permission denied}. Permesso negato; l'accesso
   al file non è consentito: i permessi del file o della directory non
   consentono l'operazione.
   al file non è consentito: i permessi del file o della directory non
   consentono l'operazione.
-\item \macro{ELOOP} \textit{Too many symbolic links encountered}. Ci sono
+\item \errcode{ELOOP} \textit{Too many symbolic links encountered}. Ci sono
   troppi link simbolici nella risoluzione di un pathname.  
   troppi link simbolici nella risoluzione di un pathname.  
-\item \macro{ENAMETOOLONG} \textit{File name too long}. Si è indicato un
+\item \errcode{ENAMETOOLONG} \textit{File name too long}. Si è indicato un
   pathname troppo lungo.
   pathname troppo lungo.
-\item \macro{ENOTBLK} \textit{Block device required}. Si è specificato un file
-  che non è un \textit{block device} in un contesto in cui era necessario
+\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).
   specificare un \textit{block device} (ad esempio si è tentato di montare un
   file ordinario).
-\item \macro{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.
   in un contesto in cui ha senso solo specificare un nuovo file.
-\item \macro{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 \macro{EXDEV} \textit{Cross-device link}. Si è tentato di creare un link
-  diretto che attraversa due filesystem differenti.
-\item \macro{ENODEV} \textit{No such device}. Si è indicato un tipo di device
+\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.
   sbagliato ad una funzione che ne richiede uno specifico.
-\item \macro{ENOTDIR} \textit{Not a directory}. Si è specificato un file che
+\item \errcode{ENOTDIR} \textit{Not a directory}. Si è specificato un file che
   non è una directory in una operazione che richiede una directory.
   non è una directory in una operazione che richiede una directory.
-\item \macro{EISDIR} \textit{Is a directory}. Il file specificato è una
+\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.
   directory, non può essere aperto in scrittura, né si possono creare o
   rimuovere link diretti ad essa.
-\item \macro{EMFILE} \textit{Too many open files}. Il processo corrente ha
+\item \errcode{EMFILE} \textit{Too many open files}. Il processo corrente ha
   troppi file aperti e non può aprirne altri. Anche i descrittori duplicati
   vengono tenuti in conto\footnote{Il numero massimo di file aperti è
   troppi file aperti e non può aprirne altri. Anche i descrittori duplicati
   vengono tenuti in conto\footnote{Il numero massimo di file aperti è
-    controllabile dal sistema, in Linux si può usare il comando \cmd{ulimit}}.
-\item \macro{ENFILE} \textit{File table overflow}. Ci sono troppi file aperti
+    controllabile dal sistema, in Linux si può usare il comando
+    \cmd{ulimit}.}.
+\item \errcode{ENFILE} \textit{File table overflow}. Ci sono troppi file aperti
   nel sistema. 
   nel sistema. 
-\item \macro{ENOTTY} \textit{Not a terminal}. Si è tentata una operazione di
+\item \errcode{ENOTTY} \textit{Not a terminal}. Si è tentata una operazione di
   controllo relativa ad un terminale su un file che non lo è.
   controllo relativa ad un terminale su un file che non lo è.
-\item \macro{ETXTBSY} \textit{Text file busy}. Si è cercato di eseguire un
+\item \errcode{ETXTBSY} \textit{Text file busy}. Si è cercato di eseguire un
   file che è aperto in scrittura, o scrivere un file che è in esecuzione. 
   file che è aperto in scrittura, o scrivere un file che è in esecuzione. 
-\item \macro{EFBIG} \textit{File too big}. Si è ecceduto il limite imposto dal
-  sistema sulla dimensione massima che un file può avere.
-\item \macro{ENOSPC} \textit{No space left on device}. la directory in cui si
+\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.
   vuole creare il link non ha spazio per ulteriori voci.
-\item \macro{ESPIPE} \textit{Invalid seek operation}. 
-\item \macro{EROFS} \textit{Read-only file system}.  il file risiede su un filesystem read-only.
-\item \macro{EMLINK} \textit{Too many links}. Ci sono troppi link al file (il
-   numero massimo è specificato dalla variabile \macro{LINK\_MAX}, vedi
+\item \errcode{ESPIPE} \textit{Invalid seek operation}. 
+\item \errcode{EROFS} \textit{Read-only file system}.  il file risiede su un
+  filesystem read-only.
+\item \errcode{EMLINK} \textit{Too many links}. Ci sono troppi link al file (il
+   numero massimo è specificato dalla variabile \const{LINK\_MAX}, vedi
   \secref{sec:sys_limits}).
   \secref{sec:sys_limits}).
-\item \macro{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
   leggendo l'altro capo della pipe. Ogni funzione che restituisce questo
-  errore genera anche un segnale \macro{SIGPIPE}, la cui azione di default è
+  errore genera anche un segnale \const{SIGPIPE}, la cui azione predefinita è
   terminare il programma; pertanto non si potrà vedere questo errore fintanto
   terminare il programma; pertanto non si potrà vedere questo errore fintanto
-  che \macro{SIGPIPE} non viene gestito o bloccato.
-\item \macro{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 \macro{EUSERS} \textit{Too many users}. Troppi utenti, il sistema delle
+  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
+  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.
   quote rileva troppi utenti nel sistema.
-\item \macro{EDQUOT} \textit{Quota exceeded}. Si è ecceduta la quota di disco
+\item \errcode{EDQUOT} \textit{Quota exceeded}. Si è ecceduta la quota di disco
   dell'utente.
   dell'utente.
-\item \macro{ESTALE} \textit{Stale NFS file handle}. Indica un problema
+\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.
   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 \macro{EREMOTE} \textit{Object is remote}. Si è fatto un tentativo di
+\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. 
   montare via NFS un filesystem remoto con un nome  che già specifica un
   filesystem montato via NFS. 
-\item \macro{ENOLCK} \textit{No locks available}. È usato dalle utilità per la
-  gestione del file lock; non viene generato da un sistema GNU, ma può
+\item \errcode{ENOLCK} \textit{No locks available}. È usato dalle utilità per
+  la gestione del file lock; non viene generato da un sistema GNU, ma può
   risultare da un'operazione su un server NFS di un altro sistema.
   risultare da un'operazione su un server NFS di un altro sistema.
-\item \macro{EFTYPE} \textit{Inappropriate file type or format}. Il file è di
+\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
   tipo sbagliato rispetto all'operazione richiesta o un file di dati ha un
   formato sbagliato. Alcuni sistemi restituiscono questo errore quando si
-  cerca di settare lo \textit{sticky bit} su un file che non è una directory.
+  cerca di impostare lo \textit{sticky bit} su un file che non è una directory.
 \end{description}
 
 
 \end{description}
 
 
@@ -127,17 +139,17 @@ attinenti ad errori che riguardano operazioni specifiche relative alla
 gestione dei processi.
 
 \begin{description}
 gestione dei processi.
 
 \begin{description}
-\item \macro{ESRCH} \textit{No process matches the specified process ID}. Non
+\item \errcode{ESRCH} \textit{No process matches the specified process ID}. Non
   esiste un processo con il \acr{pid} specificato.
   esiste un processo con il \acr{pid} specificato.
-\item \macro{E2BIG} \textit{Argument list too long}. Lista degli argomenti
+\item \errcode{E2BIG} \textit{Argument list too long}. Lista degli argomenti
   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.
   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.
-\item \macro{ECHILD} \textit{There are no child processes}. Non esiste un
+\item \errcode{ECHILD} \textit{There are no child processes}. Non esiste un
   processo figlio. Viene rilevato dalle funzioni per la gestione dei processi
   figli. 
   processo figlio. Viene rilevato dalle funzioni per la gestione dei processi
   figli. 
-%\item \macro{EPROCLIM} \textit{}.  Il limite dell'utente per nuovi processi
-%  sarà ecceduto alla prossima \func{fork}. (non credo esista in linux)
+%\item \errcode{EPROCLIM} \textit{}.  Il limite dell'utente per nuovi processi
+%  sarà ecceduto alla prossima \func{fork}. (non credo esista in Linux)
 \end{description}
 
 
 \end{description}
 
 
@@ -150,82 +162,82 @@ gestione dei socket e delle connessioni di rete.
 
 
 \begin{description}
 
 
 \begin{description}
-\item \macro{ENOTSOCK} \textit{Socket operation on non-socket}. Si è tentata
+\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.
   un'operazione su un file descriptor che non è un socket quando invece era
   richiesto un socket.
-\item \macro{EMSGSIZE} \textit{Message too long}. Le dimensioni di un
+\item \errcode{EMSGSIZE} \textit{Message too long}. Le dimensioni di un
   messaggio inviato su un socket sono eccedono la massima lunghezza supportata.
   messaggio inviato su un socket sono eccedono la massima lunghezza supportata.
-\item \macro{EPROTOTYPE} \textit{Protocol wrong type for socket}. 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. 
   sbagliato per il socket. Il socket usato non supporta il protocollo di
   comunicazione richiesto. 
-\item \macro{ENOPROTOOPT} \textit{Protocol not available}. Protocollo non
+\item \errcode{ENOPROTOOPT} \textit{Protocol not available}. Protocollo non
   disponibile. Si è richiesta un'opzione per il socket non disponibile con il
   protocollo usato.
   disponibile. Si è richiesta un'opzione per il socket non disponibile con il
   protocollo usato.
-\item \macro{EPROTONOSUPPORT} \textit{Protocol not supported}. Protocollo non
+\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).
   supportato. Il tipo di socket non supporta il protocollo richiesto (un
   probabile errore nella specificazione del protocollo).
-\item \macro{ESOCKTNOSUPPORT} \textit{Socket type not supported}. Socket non
+\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 \macro{EOPNOTSUPP} \textit{Operation not supported on transport
+\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.
     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 \macro{EPFNOSUPPORT} \textit{Protocol family not supported}. Famiglia di
-  protocolli non supportata. La famiglia di protocolli richiesta non è
+\item \errcode{EPFNOSUPPORT} \textit{Protocol family not supported}. Famiglia
+  di protocolli non supportata. La famiglia di protocolli richiesta non è
   supportata.
   supportata.
-\item \macro{EAFNOSUPPORT} \textit{Address family not supported by protocol}.
+\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.
   Famiglia di indirizzi non supportata. La famiglia di indirizzi richiesta non
   è supportata, o è inconsistente con il protocollo usato dal socket.
-\item \macro{EADDRINUSE} \textit{Address already in use}. L'indirizzo del
+\item \errcode{EADDRINUSE} \textit{Address already in use}. L'indirizzo del
   socket richiesto è gia utilizzato (ad esempio si è richiesto il \func{bind}
   per una porta già in uso).
   socket richiesto è gia utilizzato (ad esempio si è richiesto il \func{bind}
   per una porta già in uso).
-\item \macro{EADDRNOTAVAIL} \textit{Cannot assign requested address}.
+\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 della stazione locale).
   L'indirizzo richiesto non è disponibile (ad esempio si è cercato di dare al
   socket un nome che non corrisponde al nome della stazione locale).
-\item \macro{ENETDOWN} \textit{Network is down}. L'operazione sul socket è
+\item \errcode{ENETDOWN} \textit{Network is down}. L'operazione sul socket è
   fallita perché la rete è sconnessa.
   fallita perché la rete è sconnessa.
-\item \macro{ENETUNREACH} \textit{Network is unreachable}. L'operazione è
+\item \errcode{ENETUNREACH} \textit{Network is unreachable}. L'operazione è
   fallita perché l'indirizzo richiesto è irraggiungibile (ad esempio la
   sottorete della stazione remota è irraggiungibile).
   fallita perché l'indirizzo richiesto è irraggiungibile (ad esempio la
   sottorete della stazione remota è irraggiungibile).
-\item \macro{ENETRESET} \textit{Network dropped connection because of reset}.
-  Una connessione è stata resettata perché l'host remoto è caduto.
-\item \macro{ECONNABORTED} \textit{Software caused connection abort}. Una
+\item \errcode{ENETRESET} \textit{Network dropped connection because of reset}.
+  Una connessione è stata cancellata perché l'host remoto è caduto.
+\item \errcode{ECONNABORTED} \textit{Software caused connection abort}. Una
   connessione è stata abortita localmente. 
   connessione è stata abortita localmente. 
-\item \macro{ECONNRESET} \textit{Connection reset by peer}. Una connessione è
+\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.
   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 \macro{ENOBUFS} \textit{No buffer space available}. Tutti i buffer per
+\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 \macro{ENOMEM}, ma attiene alle funzioni di input/output. In
+  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.
   caso di operazioni sulla rete si può ottenere questo errore invece
   dell'altro.
-\item \macro{EISCONN} \textit{Transport endpoint is already connected}. Si è
+\item \errcode{EISCONN} \textit{Transport endpoint is already connected}. Si è
   tentato di connettere un socket che è gia connesso.
   tentato di connettere un socket che è gia connesso.
-\item \macro{ENOTCONN} \textit{Transport endpoint is not connected}. Il socket
-  non è connesso a niente. Si ottiene questo errore quando si cerca di
+\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)
   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 è \macro{EDESTADDRREQ}.
-\item \macro{EDESTADDRREQ} \textit{Destination address required}. Non c'è un
-  indirizzo di destinazione di default per il socket. Si ottiene questo errore
-  mandando dato su un socket senza connessione senza averne prima specificato
-  una destinazione.
-\item \macro{ESHUTDOWN} \textit{Cannot send after transport endpoint
+  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{ESHUTDOWN} \textit{Cannot send after transport endpoint
     shutdown}. Il socket su cui si cerca di inviare dei dati ha avuto uno
   shutdown.
     shutdown}. Il socket su cui si cerca di inviare dei dati ha avuto uno
   shutdown.
-\item \macro{ETOOMANYREFS} \textit{Too many references: cannot splice}. La
+\item \errcode{ETOOMANYREFS} \textit{Too many references: cannot splice}. La
   glibc dice ???
   glibc dice ???
-\item \macro{ETIMEDOUT} \textit{Connection timed out}. Un'operazione sul
+\item \errcode{ETIMEDOUT} \textit{Connection timed out}. Un'operazione sul
   socket non ha avuto risposta entro il periodo di timeout.
   socket non ha avuto risposta entro il periodo di timeout.
-\item \macro{ECONNREFUSED} \textit{Connection refused}. Un host remoto ha
+\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).  
   rifiutato la connessione (in genere dipende dal fatto che non c'è un server
   per soddisfare il servizio richiesto).  
-\item \macro{EHOSTDOWN} \textit{Host is down}. L'host remoto di una
+\item \errcode{EHOSTDOWN} \textit{Host is down}. L'host remoto di una
   connessione è giù.
   connessione è giù.
-\item \macro{EHOSTUNREACH} \textit{No route to host}.  L'host remoto di una
+\item \errcode{EHOSTUNREACH} \textit{No route to host}.  L'host remoto di una
   connessione non è raggiungibile.
 \end{description}
 
   connessione non è raggiungibile.
 \end{description}
 
@@ -236,36 +248,37 @@ attinenti ad errori generici, si trovano qui tutti i codici di errore non
 specificati nelle sezioni precedenti.
 
 \begin{description}
 specificati nelle sezioni precedenti.
 
 \begin{description}
-\item \macro{EINTR} \textit{Interrupted function call}. Una funzione di
+\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. In questo
   caso è necessario ripetere la chiamata alla funzione. 
   libreria è stata interrotta. In genere questo avviene causa di un segnale
   asincrono al processo che impedisce la conclusione della chiamata. In questo
   caso è necessario ripetere la chiamata alla funzione. 
-\item \macro{ENOMEM} \textit{No memory available}. Il kernel non è in grado di
-  allocare ulteriore memoria per completare l'operazione richiesta.
-\item \macro{EDEADLK} \textit{Deadlock avoided}. L'allocazione di una risorsa
-  avrebbe causato un deadlock. Non sempre il sistema è in grado di riconoscere
-  queste situazioni, nel qual caso si avrebbe in blocco. 
-\item \macro{EFAULT} \textit{Bad address}. Una stringa passata come parametro
+\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 \textit{deadlock}\index{deadlock}. Non sempre il
+  sistema è in grado di riconoscere queste situazioni, nel qual caso si
+  avrebbe in blocco.
+\item \errcode{EFAULT} \textit{Bad address}. Una stringa passata come parametro
   è fuori dello spazio di indirizzi del processo, in genere questa situazione
   provoca l'emissione di un segnale di \textit{segment violation}
   è fuori dello spazio di indirizzi del processo, in genere questa situazione
   provoca l'emissione di un segnale di \textit{segment violation}
-  (\macro{SIGSEGV}).
-\item \macro{EINVAL} \textit{Invalid argument}. Errore utilizzato per
+  (\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.
   segnalare vari tipi di problemi dovuti all'aver passato un argomento
   sbagliato ad una funzione di libreria.
-\item \macro{EDOM} \textit{Domain error}. È usato dalle funzioni matematiche
+\item \errcode{EDOM} \textit{Domain error}. È usato dalle funzioni matematiche
   quando il valore di un argomento è al di fuori dell'intervallo in cui sono
   definite. 
   quando il valore di un argomento è al di fuori dell'intervallo in cui sono
   definite. 
-\item \macro{ERANGE} \textit{Range error}. È usato dalle funzioni matematiche
+\item \errcode{ERANGE} \textit{Range error}. È usato dalle funzioni matematiche
   quando il risultato non è rappresentabile a causa di un overflow o di un
   underflow.
   quando il risultato non è rappresentabile a causa di un overflow o di un
   underflow.
-\item \macro{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
   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
-    un codice diverso, \macro{EWOULDBLOCK}. In genere questo ha a che fare con
-    file o socket, per i quali si può usare la funzione \func{select}  per
+    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
     vedere quando l'operazione richiesta (lettura, scrittura o connessione)
     diventa possibile.
   \item Indica la carenza di una risorsa di sistema che non è al momento
     vedere quando l'operazione richiesta (lettura, scrittura o connessione)
     diventa possibile.
   \item Indica la carenza di una risorsa di sistema che non è al momento
@@ -276,57 +289,61 @@ specificati nelle sezioni precedenti.
     carenza è spesso indice di qualcosa che non va nel sistema, è pertanto
     opportuno segnalare esplicitamente questo tipo di errori.
   \end{itemize}
     carenza è spesso indice di qualcosa che non va nel sistema, è pertanto
     opportuno segnalare esplicitamente questo tipo di errori.
   \end{itemize}
-\item \macro{EWOULDBLOCK} \textit{Operation would block}. In Linux è identico
-  a \macro{EAGAIN}.
-\item \macro{EINPROGRESS} \textit{Operation now in progress}. Operazione in
+\item \errcode{EWOULDBLOCK} \textit{Operation would block}. In Linux è identico
+  a \errcode{EAGAIN}.
+\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
   riportato per operazioni che si dovrebbero sempre bloccare (come per una
   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 \macro{EAGAIN},
+  \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 \macro{EALREADY}.
-\item \macro{EALREADY} \textit{Operation already in progress}. L'operazione è
+  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.
   già in corso. Si è tentata un'operazione già in corso su un oggetto posto in
   modalità non-bloccante.
-\item \macro{ENOSYS} \textit{Function not implemented}. Indica che la funzione
-  non è implementata o nelle librerie del C o nel kernel. 
-\item \macro{ENOTSUP} \textit{Not supported}. Una funzione ritorna questo
+\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.
+\item \errcode{ENOTSUP} \textit{Not supported}. Una funzione ritorna questo
   errore quando i parametri 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.
   errore quando i parametri 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.
-\item \macro{EILSEQ} \textit{Illegal byte sequence}. Nella decodifica di un
-  carattere multibyte si è avuta una sequenza errata o incompleta o si è
+\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.
 \end{description}
 
 
 \begin{description}
   specificato un valore non valido.
 \end{description}
 
 
 \begin{description}
-%\item \macro{EBADRPC} \textit{}. 
-%\item \macro{ERPCMISMATCH} \textit{}. 
-%\item \macro{EPROGUNAVAIL} \textit{}. 
-%\item \macro{EPROGMISMATCH} \textit{}. 
-%\item \macro{EPROCUNAVAIL} \textit{}. 
-%\item \macro{EAUTH} \textit{}. 
-%\item \macro{ENEEDAUTH} \textit{}. 
-%\item \macro{EBACKGROUND} \textit{}. 
-%\item \macro{EDIED} \textit{}. 
-%\item \macro{ED} \textit{}. 
-%\item \macro{EGREGIOUS} \textit{}. 
-%\item \macro{EIEIO} \textit{}. 
-%\item \macro{EGRATUITOUS} \textit{}. 
-\item \macro{EBADMSG} \textit{Not a data message}. 
-\item \macro{EIDRM} \textit{Identifier removed}. 
-\item \macro{EMULTIHOP} \textit{Multihop attempted}. 
-\item \macro{ENODATA} \textit{No data available}. 
-\item \macro{ENOLINK} \textit{Link has been severed}. 
-\item \macro{ENOMSG} \textit{No message of desired type}. 
-\item \macro{ENOSR} \textit{Out of streams resources}. 
-\item \macro{ENOSTR} \textit{Device not a stream}. 
-\item \macro{EOVERFLOW} \textit{Value too large for defined data type}. 
-\item \macro{EPROTO} \textit{Protocol error}. 
-\item \macro{ETIME} \textit{Timer expired}. 
+%\item \errcode{EBADRPC} \textit{}. 
+%\item \errcode{ERPCMISMATCH} \textit{}. 
+%\item \errcode{EPROGUNAVAIL} \textit{}. 
+%\item \errcode{EPROGMISMATCH} \textit{}. 
+%\item \errcode{EPROCUNAVAIL} \textit{}. 
+%\item \errcode{EAUTH} \textit{}. 
+%\item \errcode{ENEEDAUTH} \textit{}. 
+%\item \errcode{EBACKGROUND} \textit{}. 
+%\item \errcode{EDIED} \textit{}. 
+%\item \errcode{ED} \textit{}. 
+%\item \errcode{EGREGIOUS} \textit{}. 
+%\item \errcode{EIEIO} \textit{}. 
+%\item \errcode{EGRATUITOUS} \textit{}. 
+\item \errcode{EBADMSG} \textit{Not a data message}. 
+\item \errcode{EIDRM} \textit{Identifier removed}. Indica che l'oggetto del
+  \textit{SysV IPC} cui si fa riferimento è stato cancellato.
+\item \errcode{EMULTIHOP} \textit{Multihop attempted}. 
+\item \errcode{ENODATA} \textit{No data available}. 
+\item \errcode{ENOLINK} \textit{Link has been severed}. 
+\item \errcode{ENOMSG} \textit{No message of desired type}. 
+\item \errcode{ENOSR} \textit{Out of streams resources}. 
+\item \errcode{ENOSTR} \textit{Device not a stream}. 
+\item \errcode{EOVERFLOW} \textit{Value too large for defined data type}. 
+\item \errcode{EPROTO} \textit{Protocol error}. 
+\item \errcode{ETIME} \textit{Timer expired}. 
 \end{description}
 
 
 \end{description}
 
 
@@ -341,45 +358,50 @@ sono usati dalle funzioni di libreria, ma vengono riportati da alcune system
 call (TODO verificare i dettagli, eventualmente cassare).
 
 \begin{description}
 call (TODO verificare i dettagli, eventualmente cassare).
 
 \begin{description}
-\item \macro{ERESTART} \textit{Interrupted system call should be restarted}. 
-\item \macro{ECHRNG} \textit{Channel number out of range}. 
-\item \macro{EL2NSYNC} \textit{Level 2 not synchronized}. 
-\item \macro{EL3HLT} \textit{Level 3 halted}. 
-\item \macro{EL3RST} \textit{Level 3 reset}. 
-\item \macro{ELNRNG} \textit{Link number out of range}. 
-\item \macro{EUNATCH} \textit{Protocol driver not attached}. 
-\item \macro{ENOCSI} \textit{No CSI structure available}. 
-\item \macro{EL2HLT} \textit{Level 2 halted}. 
-\item \macro{EBADE} \textit{Invalid exchange}. 
-\item \macro{EBADR} \textit{Invalid request descriptor}. 
-\item \macro{EXFULL} \textit{Exchange full}. 
-\item \macro{ENOANO} \textit{No anode}. 
-\item \macro{EBADRQC} \textit{Invalid request code}. 
-\item \macro{EBADSLT} \textit{Invalid slot}. 
-\item \macro{EDEADLOCK} Identico a \macro{EDEADLK}. 
-\item \macro{EBFONT} \textit{Bad font file format}. 
-\item \macro{ENONET} \textit{Machine is not on the network}. 
-\item \macro{ENOPKG} \textit{Package not installed}. 
-\item \macro{EADV} \textit{Advertise error}. 
-\item \macro{ESRMNT} \textit{Srmount error}. 
-\item \macro{ECOMM} \textit{Communication error on send}. 
-\item \macro{EDOTDOT} \textit{RFS specific error}. 
-\item \macro{ENOTUNIQ} \textit{Name not unique on network}. 
-\item \macro{EBADFD} \textit{File descriptor in bad state}. 
-\item \macro{EREMCHG} \textit{Remote address changed}. 
-\item \macro{ELIBACC} \textit{Can not access a needed shared library}. 
-\item \macro{ELIBBAD} \textit{Accessing a corrupted shared library}. 
-\item \macro{ELIBSCN} \textit{.lib section in a.out corrupted}. 
-\item \macro{ELIBMAX} \textit{Attempting to link in too many shared libraries}. 
-\item \macro{ELIBEXEC} \textit{Cannot exec a shared library directly}. 
-\item \macro{ESTRPIPE} \textit{Streams pipe error}. 
-\item \macro{EUCLEAN} \textit{Structure needs cleaning}. 
-\item \macro{ENAVAIL} \textit{No XENIX semaphores available}. 
-\item \macro{EISNAM} \textit{Is a named type file}. 
-\item \macro{EREMOTEIO} \textit{Remote I/O error}. 
-\item \macro{ENOMEDIUM} \textit{No medium found}. 
-\item \macro{EMEDIUMTYPE} \textit{Wrong medium type}. 
-\item \macro{} \textit{}. 
+\item \errcode{ERESTART} \textit{Interrupted system call should be restarted}. 
+\item \errcode{ECHRNG} \textit{Channel number out of range}. 
+\item \errcode{EL2NSYNC} \textit{Level 2 not synchronized}. 
+\item \errcode{EL3HLT} \textit{Level 3 halted}. 
+\item \errcode{EL3RST} \textit{Level 3 reset}. 
+\item \errcode{ELNRNG} \textit{Link number out of range}. 
+\item \errcode{EUNATCH} \textit{Protocol driver not attached}. 
+\item \errcode{ENOCSI} \textit{No CSI structure available}. 
+\item \errcode{EL2HLT} \textit{Level 2 halted}. 
+\item \errcode{EBADE} \textit{Invalid exchange}. 
+\item \errcode{EBADR} \textit{Invalid request descriptor}. 
+\item \errcode{EXFULL} \textit{Exchange full}. 
+\item \errcode{ENOANO} \textit{No anode}. 
+\item \errcode{EBADRQC} \textit{Invalid request code}. 
+\item \errcode{EBADSLT} \textit{Invalid slot}. 
+\item \errcode{EDEADLOCK} Identico a \errcode{EDEADLK}. 
+\item \errcode{EBFONT} \textit{Bad font file format}. 
+\item \errcode{ENONET} \textit{Machine is not on the network}. 
+\item \errcode{ENOPKG} \textit{Package not installed}. 
+\item \errcode{EADV} \textit{Advertise error}. 
+\item \errcode{ESRMNT} \textit{Srmount error}. 
+\item \errcode{ECOMM} \textit{Communication error on send}. 
+\item \errcode{EDOTDOT} \textit{RFS specific error}. 
+\item \errcode{ENOTUNIQ} \textit{Name not unique on network}. 
+\item \errcode{EBADFD} \textit{File descriptor in bad state}. 
+\item \errcode{EREMCHG} \textit{Remote address changed}. 
+\item \errcode{ELIBACC} \textit{Can not access a needed shared library}. 
+\item \errcode{ELIBBAD} \textit{Accessing a corrupted shared library}. 
+\item \errcode{ELIBSCN} \textit{.lib section in a.out corrupted}. 
+\item \errcode{ELIBMAX} \textit{Attempting to link in too many shared
+    libraries}.
+\item \errcode{ELIBEXEC} \textit{Cannot exec a shared library directly}. 
+\item \errcode{ESTRPIPE} \textit{Streams pipe error}. 
+\item \errcode{EUCLEAN} \textit{Structure needs cleaning}. 
+\item \errcode{ENAVAIL} \textit{No XENIX semaphores available}. 
+\item \errcode{EISNAM} \textit{Is a named type file}. 
+\item \errcode{EREMOTEIO} \textit{Remote I/O error}. 
+\item \errcode{ENOMEDIUM} \textit{No medium found}. 
+\item \errcode{EMEDIUMTYPE} \textit{Wrong medium type}. 
 \end{description}
 
 
 \end{description}
 
 
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: