Aggiornamento data copyright
[gapil.git] / errors.tex
index 3028dc6cff6c56120ada38d10d35bf4468051062..7598a88f36cac0be278e219ca15fa4a3a036265f 100644 (file)
@@ -1,6 +1,6 @@
 %% errors.tex
 %%
-%% Copyright (C) 2000-2006 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2011 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",
@@ -8,6 +8,7 @@
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
+
 \chapter{I codici di errore}
 \label{cha:errors}
 
@@ -15,9 +16,10 @@ Si riportano in questa appendice tutti i codici di errore. Essi sono
 accessibili attraverso l'inclusione del file di header \file{errno.h}, che
 definisce anche la variabile globale \var{errno}. Per ogni errore definito
 riporteremo la stringa stampata da \func{perror} ed una breve spiegazione. Si
-tenga presente che spiegazioni più particolareggiate, qualora necessarie per
-il caso specifico, possono essere trovate nella descrizione del prototipo
-della funzione.
+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
@@ -142,7 +144,6 @@ gestione dei file.
 \end{description}
 
 
-
 \section{Gli errori dei processi}
 \label{sec:err_proc_errors}
 
@@ -160,10 +161,11 @@ gestione dei processi.
   troppa memoria, non può mai accadere in GNU/Linux.
 \item \errcode{ECHILD} \textit{There are no child processes}. Non esistono
   processi figli di cui attendere la terminazione. Viene rilevato dalle
-  funzioni \func{wait} e \func{waitpid}.
-%\item \errcode{EPROCLIM} \textit{}.  Il limite dell'utente per nuovi processi
-%  sarà ecceduto alla prossima \func{fork}. (non credo esista in Linux)
-% TODO verificare EPROCLIM
+  funzioni \func{wait} e \func{waitpid} (vedi sez.~\ref{sec:proc_wait}).
+\item \errcode{EPROCLIM} \textit{Too many processes}.  Il limite dell'utente
+  per nuovi processi (vedi sez.~\ref{sec:sys_resource_limit}) sarà ecceduto
+  alla prossima \func{fork}; è un codice di errore di BSD, che non viene
+  utilizzato al momento su Linux. 
 \end{description}
 
 
@@ -277,8 +279,8 @@ specificati nelle sezioni precedenti.
   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} (\const{SIGSEGV}).
+  situazione provoca direttamente l'emissione di un segnale di
+  \itindex{segment~violation} \textit{segment violation} (\const{SIGSEGV}).
 \item \errcode{EINVAL} \textit{Invalid argument}. Errore utilizzato per
   segnalare vari tipi di problemi dovuti all'aver passato un argomento
   sbagliato ad una funzione di libreria.
@@ -353,29 +355,31 @@ specificati nelle sezioni precedenti.
 %\item \errcode{ED} \textit{}. 
 %\item \errcode{EGREGIOUS} \textit{}. 
 %\item \errcode{EIEIO} \textit{}. 
-%\item \errcode{EGRATUITOUS} \textit{}. 
+%\item \errcode{EGRATUITOUS} \textit{} roba di Hurd, pare
 
 
-\item \errcode{EBADMSG} \textit{Not a data message}. Definito da Posix come
+\item \errcode{EBADMSG} \textit{Not a data message}. Definito da POSIX come
 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
+\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
+\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
-  viene utilizzato \errcode{EAGAIN}. In Linux viene utilizzato dalle funzioni
-  per la gestione degli attributi estesi dei file quando il nome
-  dell'attributo richiesto non viene trovato.
+  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}. 
 
-% TODO referenziare la trattazione degli attributi estesi dei file
+\item \errcode{ENOATTR} \textit{No such attribute}. È un codice di errore
+  specifico di Linux utilizzato dalle funzioni per la gestione degli attributi
+  estesi dei file (vedi sez.~\ref{sec:file_xattr}) quando il nome
+  dell'attributo richiesto non viene trovato.
 
 \item \errcode{ENOLINK} \textit{Link has been severed}. È un errore il cui
   valore è indicato come \textsl{riservato} nelle \textit{Single Unix
@@ -388,24 +392,35 @@ messaggio.
   coda di messaggi del \textit{SysV IPC} non è presente nessun messaggio del
   tipo desiderato.
 
-\item \errcode{ENOSR} \textit{Out of streams resources}. 
+\item \errcode{ENOSR} \textit{Out of streams resources}. Errore relativo agli
+  \textit{STREAMS}, che indica l'assenza di risorse sufficienti a completare
+  l'operazione richiesta. Quella degli \textit{STREAMS}\footnote{che non vanno
+    confusi con gli \textit{stream} di cap.~\ref{cha:files_std_interface}.}  è
+  interfaccia di programmazione originaria di System V, che non è implementata
+  da Linux, per cui questo errore non viene utilizzato.
 
-\item \errcode{ENOSTR} \textit{Device not a stream}. 
+\item \errcode{ENOSTR} \textit{Device not a stream}. Altro errore relativo
+  agli \textit{STREAMS}, anch'esso non utilizzato da Linux.
 
 \item \errcode{EOVERFLOW} \textit{Value too large for defined data type}. Si è
   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}. 
+\item \errcode{EPROTO} \textit{Protocol error}. Indica che c'è stato un errore
+  nel protocollo di rete usato dal socket; viene usato come errore generico
+  dall'interfaccia degli \textit{STREAMS} quando non si è in grado di
+  specificare un altro codice di errore che esprima più accuratamente la
+  situazione.
+
+\item \errcode{ETIME} \textit{Timer expired}. Indica che è avvenuto un timeout
+  nell'accesso ad una risorsa (ad esempio un semaforo). Compare nei sorgenti
+  del kernel (in particolare per le funzioni relativa al bus USB) come
+  indicazione di una mancata risposta di un dispositivo, con una descrizione
+  alternativa di \textit{Device did not respond}.
 \end{description}
 
 
 
-
-
 % \section{Errori del kernel}
 % \label{sec:err_kernel_err}
 
@@ -457,12 +472,6 @@ messaggio.
 % \end{description}
 
 
-
-%%% Local Variables: 
-%%% 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
@@ -492,4 +501,11 @@ messaggio.
 % 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
+% LocalWords:  Value large defined STAT EPROTO ETIME Timer expired group wait
+% LocalWords:  waitpid Specification cap USB did respond Stale
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: