%% errors.tex
%%
-%% Copyright (C) 2000-2006 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2010 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",
%% license is included in the section entitled "GNU Free Documentation
%% License".
%%
+
\chapter{I codici di errore}
\label{cha:errors}
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
\end{description}
-
\section{Gli errori dei processi}
\label{sec:err_proc_errors}
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}
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.
%\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
-
-
% \section{Errori del kernel}
% \label{sec:err_kernel_err}
% \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
% 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: