%% errors.tex
%%
-%% Copyright (C) 2000-2012 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2016 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",
\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 \index{variabili!globali} 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 del significato dell'errore, qualora necessarie per casi
-specifici, possono essere trovate nella descrizione del prototipo della
-funzione per cui detto errore si è verificato.
+accessibili attraverso l'inclusione del file di header \headfile{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 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
permessa: solo il proprietario del file o un processo con sufficienti
privilegi può eseguire l'operazione.
\item[\errcode{ENOENT} \textit{No such file or directory}.] Il file indicato
- dal \itindex{pathname} \textit{pathname} non esiste: o una delle componenti
- non esiste o il \textit{pathname} contiene un link simbolico spezzato.
- Errore tipico di un riferimento ad un file che si suppone erroneamente
- essere esistente.
+ dal \textit{pathname} non esiste: o una delle componenti non esiste o il
+ \textit{pathname} contiene un link simbolico spezzato. Errore tipico di un
+ riferimento ad un file che si suppone erroneamente essere esistente.
\item[\errcode{EIO} \textit{Input/output error}.] Errore di input/output:
usato per riportare errori hardware in lettura/scrittura su un dispositivo.
\item[\errcode{ENXIO} \textit{No such device or address}.] Dispositivo
al file o alla directory non è consentito: i permessi del file o della
directory non consentono l'operazione richiesta.
\item[\errcode{ELOOP} \textit{Too many symbolic links encountered}.] Ci sono
- troppi link simbolici nella risoluzione di un
- \itindex{pathname} \textit{pathname}.
+ troppi link simbolici nella risoluzione di un \textit{pathname}.
\item[\errcode{ENAMETOOLONG} \textit{File name too long}.] Si è indicato un
- \itindex{pathname} \textit{pathname} troppo lungo per un file o una
- directory.
+ \textit{pathname} troppo lungo per un file o una directory.
\item[\errcode{ENOTBLK} \textit{Block device required}.] Si è specificato un
file che non è un \textit{block device} in un contesto in cui era necessario
specificare un \textit{block device} (ad esempio si è tentato di montare un
\item[\errcode{ENOSPC} \textit{No space left on device}.] La directory in cui
si vuole creare il link non ha spazio per ulteriori voci, o si è cercato di
scrivere o di creare un nuovo file su un dispositivo che è già pieno.
-\item[\errcode{ESPIPE} \textit{Invalid seek operation}.] Si cercato di eseguire
- una \func{seek} su un file che non supporta questa operazione (ad esempio su
- una pipe).
+\item[\errcode{ESPIPE} \textit{Invalid seek operation}.] Si cercato di
+ eseguire una \func{lseek} su un file che non supporta questa operazione (ad
+ esempio su una \textit{pipe}, da cui il nome).
\item[\errcode{EROFS} \textit{Read-only file system}.] Si è cercato di
eseguire una operazione di scrittura su un file o una directory che risiede
su un filesystem montato un sola lettura.
-\item[\errcode{EMLINK} \textit{Too many links}]. Ci sono già troppi link al
- file (il numero massimo è specificato dalla variabile \const{LINK\_MAX},
- vedi sez.~\ref{sec:sys_limits}).
+\item[\errcode{EMLINK} \textit{Too many links}.] Ci sono già troppi link al
+ file, il numero massimo è specificato dalla variabile \const{LINK\_MAX},
+ vedi sez.~\ref{sec:sys_limits}.
\item[\errcode{EPIPE} \textit{Broken pipe}.] Non c'è un processo che stia
- leggendo l'altro capo della pipe. Ogni funzione che restituisce questo
- errore genera anche un segnale \signal{SIGPIPE}, la cui azione predefinita è
- terminare il programma; pertanto non si potrà vedere questo errore fintanto
- che \signal{SIGPIPE} non viene gestito o bloccato.
+ leggendo l'altro capo della \textit{pipe}. Ogni funzione che restituisce
+ questo errore genera anche un segnale \signal{SIGPIPE}, la cui azione
+ predefinita è terminare il programma; pertanto non si potrà vedere questo
+ errore fintanto che \signal{SIGPIPE} non viene gestito o bloccato.
\item[\errcode{ENOTEMPTY} \textit{Directory not empty}.] La directory non è
vuota quando l'operazione richiede che lo sia. È l'errore tipico che si ha
quando si cerca di cancellare una directory contenente dei file.
\item[\errcode{EFTYPE} \textit{Inappropriate file type or format}.] Il file è
di tipo sbagliato rispetto all'operazione richiesta o un file di dati ha un
formato sbagliato. Alcuni sistemi restituiscono questo errore quando si
- cerca di impostare lo \itindex{sticky~bit} \textit{sticky bit} su un file che
- non è una directory.
+ cerca di impostare lo \textit{sticky bit} su un file che non è una
+ directory.
\end{basedescript}
\section{Gli errori dei processi}
\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
\item[\errcode{ESRCH} \textit{No process matches the specified process ID}.]
- Non esiste un processo o un \itindex{process~group} \textit{process group}
- corrispondenti al valore dell'identificativo specificato.
+ Non esiste un processo o un \textit{process group} corrispondenti al valore
+ dell'identificativo specificato.
\item[\errcode{E2BIG} \textit{Argument list too long}.] La lista degli
argomenti passati è troppo lunga: è una condizione prevista da POSIX quando
la lista degli argomenti passata ad una delle funzioni \func{exec} occupa
\item[\errcode{ENOMEM} \textit{No memory available}.] Il kernel non è in grado
di allocare ulteriore memoria per completare l'operazione richiesta.
\item[\errcode{EDEADLK} \textit{Deadlock avoided}.] L'allocazione di una
- risorsa avrebbe causato un \itindex{deadlock} \textit{deadlock}. Non sempre
- il sistema è in grado di riconoscere queste situazioni, nel qual caso si
- avrebbe il blocco.
+ risorsa avrebbe causato un \textit{deadlock}. Non sempre il sistema è in
+ grado di riconoscere queste situazioni, nel qual caso si 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
- \itindex{segment~violation} \textit{segment violation} (\signal{SIGSEGV}).
+ situazione provoca direttamente l'emissione di un segnale di \textit{segment
+ violation} (\signal{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{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}.} è
+ confusi con gli \textit{stream} di sez.~\ref{sec:files_std_interface}.} è
interfaccia di programmazione originaria di System V, che non è implementata
da Linux, per cui questo errore non viene utilizzato.