File con tutti i codici di errore
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 13 Aug 2001 20:53:53 +0000 (20:53 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 13 Aug 2001 20:53:53 +0000 (20:53 +0000)
errors.tex [new file with mode: 0644]

diff --git a/errors.tex b/errors.tex
new file mode 100644 (file)
index 0000000..0c1cd6a
--- /dev/null
@@ -0,0 +1,102 @@
+\chapter{I codici di errore}
+\label{cha:errors}
+
+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.
+
+I codici di errore sono riportati come costanti di tipo \type{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:intro_strerror}) possono essere usate per
+ottene dei messaggi di errore.
+
+
+\section{Gli errori dei file}
+\label{sec:err_file_errors}
+
+In questa sezione riassumeremo gli errori restituiti dalle funzioni di
+libreria che operano sui file.
+
+\begin{description}
+  
+\item \macro{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 \macro{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.
+  
+\item \macro{EIO} \textit{Input/output error}. Errore di input/output: usato
+  per riportare errori hardware in lettura/scrittura (su un dispositivo).
+
+
+\item \macro{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
+  dispositico è fisicamente assente o non funzionante.
+  
+\item \macro{EBADF} \textit{Bad file descriptor}. File descriptor non valido:
+  si è usato un file descriptor inesistente, o aperto in sola lettura per
+  scrivere, o viceversa.
+
+
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+
+\item \macro{EFAULT} una stringa passata come parametro è fuori dello spazio
+  di indirizzi del processo.
+\item \macro{EACCESS} l'accesso al file non è consentito: o una delle
+  directory del pathname non consente la ricerca, o il file non esiste e non
+  si ha accesso in scrittura nella directory in cui lo si vuole creare.
+\item \macro{ENAMETOOLONG} si è indicato un pathname troppo lungo.
+\item \macro{ENOTDIR} un componente del pathname non è una directory.
+\item \macro{ENOMEM} il kernel non ha a disposizione memoria sufficiente a
+  completare l'operazione. 
+\item \macro{EMLINK} ci sono troppi link al file (il numero massimo è
+  specificato dalla variabile \macro{LINK\_MAX}, vedi
+  \secref{sec:xxx_limits}).
+\item \macro{ELOOP} ci sono troppi link simbolici nella risoluzione di un
+  pathname.
+\item \macro{ENOSPC} la directory in cui si vuole creare il link non ha
+  spazio per ulteriori voci.
+\item \macro{EROFS} il file risiede su un filesystem read-only.
+
+\end{description}
+
+\section{Gli errori dei processi}
+\label{sec:err_proc_errors}
+
+In questa sezione riassumeremo gli errori restituiti dalle funzioni di
+libreria che operano sui processi.
+
+\begin{description}
+
+\item \macro{ESRCH} \textit{No process matches the specified process ID}. Non
+  esiste un processo con il \acr{pid} specificato.
+\item \macro{EINTR} \textit{Interrupted function call}. Una funzione di
+  libreria è stata interrotta. In genere questo avviene causa di un segnale
+  asincrono al processo che impedisce la conclusione della chiamata. In questo
+  caso è necessario ripetere la chiamata alla funzione. 
+\item \macro{E2BIG} \textit{Argument list too long}. Lista degli argomenti
+  troppo lunga: è una condizione prevista da POSIX quando la lista degli
+  argomenti passata ad una delle funzioni \func{exec} occupa troppa memoria,
+  non può mai accadere in GNU/Linux.
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+\item \macro{} \textit{}. 
+
+\end{description}
+