X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=errors.tex;h=7598a88f36cac0be278e219ca15fa4a3a036265f;hp=3028dc6cff6c56120ada38d10d35bf4468051062;hb=33a54e1bfa5e62cb90d84c2d5f2d0c53864f6bec;hpb=40efb7fcbad4c48de800a99fba96389eaed6abc8 diff --git a/errors.tex b/errors.tex index 3028dc6..7598a88 100644 --- a/errors.tex +++ b/errors.tex @@ -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: