%% errors.tex
%%
-%% Copyright (C) 2000-2015 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2018 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",
Si riportano in questa appendice tutti i codici di errore. Essi sono
accessibili attraverso l'inclusione del file di header \headfile{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.
+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
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.