X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=errors.tex;h=991a1661c452f6f43a047ac33d8e639ec19bffd7;hp=434decae7c7d7acb788f063c15e0eef4b47962a1;hb=6f8e0ca42d3d0b97b5e5747798a1eaffb44e8521;hpb=5a59e67204ff436dceb6a13ed39e876aea3945a8 diff --git a/errors.tex b/errors.tex index 434deca..991a166 100644 --- a/errors.tex +++ b/errors.tex @@ -1,9 +1,9 @@ %% errors.tex %% -%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2005 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". @@ -23,7 +23,7 @@ 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 -\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. @@ -38,41 +38,43 @@ gestione dei file. \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 dispositivo non è - corretto, che il modulo relativo non è stato caricato nel kernel, o che il - dispositivo è fisicamente assente o non funzionante. +\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}. \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{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. \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. -\item \errcode{ENOTBLK} \textit{Block device required}. Si è specificato un file - che non è un \textit{block device} in un contesto in cui era necessario + \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 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{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 @@ -91,8 +93,8 @@ gestione dei file. 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 scrivere 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. \item \errcode{ESPIPE} \textit{Invalid seek operation}. @@ -100,7 +102,7 @@ gestione dei file. 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 è @@ -123,10 +125,11 @@ gestione dei file. \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. -\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} @@ -149,7 +152,8 @@ gestione dei processi. 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} @@ -255,10 +259,10 @@ specificati nelle sezioni precedenti. \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}). @@ -308,12 +312,12 @@ specificati nelle sezioni precedenti. 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} @@ -338,11 +342,16 @@ specificati nelle sezioni precedenti. \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} @@ -350,54 +359,55 @@ specificati nelle sezioni precedenti. -\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}