%% errors.tex
%%
-%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2006 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",
+%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
%% 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".
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
-\func{strerror} (vedi \secref{sec:sys_strerror}) possono essere usate per
+\func{strerror} (vedi sez.~\ref{sec:sys_strerror}) possono essere usate per
ottenere dei messaggi di errore più espliciti.
\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
- 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 \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. 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}. 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
+\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
al file non è consentito: i permessi del file o della directory non
consentono l'operazione.
\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
+ \itindex{pathname}\textit{pathname}.
\item \errcode{ENAMETOOLONG} \textit{File name too long}. Si è indicato un
- pathname troppo lungo.
+ \itindex{pathname}\textit{pathname} troppo lungo.
\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
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}).
+ 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 \const{SIGPIPE}, la cui azione predefinita è
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 lock; non viene generato da un sistema GNU, ma può
+ 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
+\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.
+ cerca di impostare lo \itindex{sticky~bit} \textit{sticky bit} su un file che
+ non è una directory.
\end{description}
processo figlio. Viene rilevato dalle funzioni per la gestione dei processi
figli.
%\item \errcode{EPROCLIM} \textit{}. Il limite dell'utente per nuovi processi
-% sarà ecceduto alla prossima \func{fork}. (non credo esista in linux)
+% sarà ecceduto alla prossima \func{fork}. (non credo esista in Linux)
+% TODO verificare EPROCLIM
\end{description}
Famiglia di indirizzi non supportata. La famiglia di indirizzi richiesta non
è supportata, o è inconsistente con il protocollo usato dal socket.
\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).
-\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).
+ 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
+ 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 è
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 è gia connesso.
+ 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
trasmettere dati su un socket senza avere specificato in precedenza la loro
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
- glibc dice ???
+ \acr{glibc} dice ???
\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
\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
+ risorsa avrebbe causato un \textit{deadlock}\itindex{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 l'emissione di un segnale di \textit{segment violation}
(\const{SIGSEGV}).
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 è
+ 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.
\item \errcode{EILSEQ} \textit{Illegal byte sequence}. Nella decodifica di un
- carattere multibyte 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}
\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{ENOMSG} \textit{No message of desired type}. Indica che una
+ coda di messaggi del \textit{SysV IPC} non è presente nessun messaggio del
+ tipo desiderato.
\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{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}. C'è stato un errore nel
+ protocollo di rete usato dal socket.
\item \errcode{ETIME} \textit{Timer expired}.
\end{description}
-\section{Errori del kernel}
-\label{sec:err_kernel_err}
+% \section{Errori del kernel}
+% \label{sec:err_kernel_err}
-In questa sezione sono raccolti i codici di errore interni del kernel. Non
-sono usati dalle funzioni di libreria, ma vengono riportati da alcune system
-call (TODO verificare i dettagli, eventualmente cassare).
+% In questa sezione sono raccolti i codici di errore interni del kernel. Non
+% sono usati dalle funzioni di libreria, ma vengono riportati da alcune system
+% call
+% TODO verificare i dettagli degli errori del kernel, eventualmente cassare.
-\begin{description}
-\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}
+% \begin{description}
+% \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}
%%% mode: latex
%%% TeX-master: "gapil"
%%% End:
+
+% LocalWords: header errno perror int strerror sez EPERM Operation not ENOENT
+% LocalWords: permitted such pathname EIO error ENXIO device address kernel Is
+% LocalWords: ENOEXEC Invalid executable format exec EBADF Bad descriptor Too
+% LocalWords: EACCES Permission denied ELOOP many symbolic links encountered
+% LocalWords: ENAMETOOLONG name too long ENOTBLK Block required block EEXIST
+% LocalWords: exists EBUSY Resource busy filesystem EXDEV ENODEV ENOTDIR files
+% LocalWords: EISDIR EMFILE ulimit ENFILE table overflow ENOTTY ETXTBSY Text
+% LocalWords: EFBIG big ENOSPC left ESPIPE seek operation EROFS Read only read
+% LocalWords: system EMLINK EPIPE Broken SIGPIPE ENOTEMPTY empty EUSERS users
+% LocalWords: EDQUOT exceeded ESTALE NFS handle EREMOTE Object is ENOLCK locks
+% LocalWords: available locking EFTYPE type sticky ESRCH process matches the
+% LocalWords: specified pid Argument list POSIX ECHILD There child processes
+% LocalWords: socket ENOTSOCK EMSGSIZE Message EPROTOTYPE Protocol wrong for
+% LocalWords: ENOPROTOOPT EPROTONOSUPPORT supported ESOCKTNOSUPPORT EOPNOTSUPP
+% LocalWords: transport endpoint EPFNOSUPPORT family EAFNOSUPPORT protocol of
+% LocalWords: EADDRINUSE already bind EADDRNOTAVAIL Cannot assign requested to
+% LocalWords: ENETDOWN ENETUNREACH unreachable ENETRESET dropped connection
+% LocalWords: because reset l'host ECONNABORTED caused abort ECONNRESET peer
+% LocalWords: dell'host ENOBUFS ENOMEM EISCONN connected ENOTCONN UDP send now
+% LocalWords: EDESTADDRREQ Destination ESHUTDOWN after shutdown ETOOMANYREFS
+% LocalWords: references cannot splice glibc ETIMEDOUT timed ECONNREFUSED host
+% LocalWords: refused EHOSTDOWN EHOSTUNREACH route EINTR Interrupted function
+% LocalWords: call memory EDEADLK Deadlock avoided deadlock EFAULT segment IPC
+% LocalWords: violation SIGSEGV EINVAL argument EDOM Domain ERANGE underflow
+% LocalWords: EAGAIN temporarily unavailable EWOULDBLOCK select fork would has
+% LocalWords: EINPROGRESS progress connect EALREADY ENOSYS implemented ENOTSUP
+% LocalWords: EILSEQ Illegal sequence EBADMSG message EIDRM Identifier removed
+% LocalWords: SysV EMULTIHOP Multihop attempted ENODATA ENOLINK been severed
+% LocalWords: ENOMSG desired ENOSR streams resources ENOSTR stream EOVERFLOW
+% LocalWords: Value large defined STAT EPROTO ETIME Timer expired