From 1872d92e291eceb931eaa3c211564f810ca350a4 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Mon, 13 Aug 2001 20:53:53 +0000 Subject: [PATCH] File con tutti i codici di errore --- errors.tex | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 errors.tex diff --git a/errors.tex b/errors.tex new file mode 100644 index 0000000..0c1cd6a --- /dev/null +++ b/errors.tex @@ -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} + -- 2.30.2