Revisione dei messaggi di errore
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 9 Sep 2002 22:28:54 +0000 (22:28 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 9 Sep 2002 22:28:54 +0000 (22:28 +0000)
fileadv.tex
filedir.tex
filestd.tex
fileunix.tex
ipc.tex
process.tex
prochand.tex
session.tex
signal.tex
system.tex

index 3b0575a..05e75f6 100644 (file)
@@ -78,7 +78,7 @@ con la funzione \func{select}, il cui prototipo 
   
   \bodydesc{La funzione in caso di successo restituisce il numero di file
     descriptor (anche nullo) che sono attivi, e -1 in caso di errore, nel qual
-    caso \var{errno} viene impostata ai valori:
+    caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -178,7 +178,7 @@ specificati da \param{ufds}.
   
 \bodydesc{La funzione restituisce il numero di file descriptor con attività in
   caso di successo, o 0 se c'è stato un timeout; in caso di errore viene
-  restituito  -1 ed \var{errno} viene impostata ai valori:
+  restituito  -1 ed \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -278,7 +278,7 @@ sostituisce i precedenti, ed aggiunge a \func{select} una nuova funzione
   
   \bodydesc{La funzione in caso di successo restituisce il numero di file
     descriptor (anche nullo) che sono attivi, e -1 in caso di errore, nel qual
-    caso \var{errno} viene impostata ai valori:
+    caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -504,7 +504,7 @@ appena descritta; i rispettivi prototipi sono:
   \param{aiocbp}.
   
   \bodydesc{Le funzioni restituiscono 0 in caso di successo, e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato.
   \item[\macro{ENOSYS}] La funzione non è implementata.
@@ -675,8 +675,8 @@ specifica operazione; il suo prototipo 
   operazioni specificate da \param{list}.
   
   \bodydesc{La funzione restituisce 0 se una (o più) operazioni sono state
-    completate, e -1 in caso di errore nel qual caso \var{errno} viene
-    impostata ai valori:
+    completate, e -1 in caso di errore nel qual caso \var{errno} assumerà uno
+    dei valori:
     \begin{errlist}
     \item[\macro{EAGAIN}] Nessuna operazione è stata completata entro
       \param{timeout}.
@@ -707,7 +707,7 @@ lettura o scrittura; il suo prototipo 
   secondo la modalità \param{mode}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EAGAIN}] Nessuna operazione è stata completata entro
       \param{timeout}.
@@ -774,8 +774,8 @@ prototipi sono:
   specificati da \param{vector}.
   
   \bodydesc{Le funzioni restituiscono il numero di byte letti o scritti in
-    caso di successo, e -1 in caso di errore, nel qual caso \var{errno} viene
-    impostata ai valori:
+    caso di successo, e -1 in caso di errore, nel qual caso \var{errno}
+    assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] si è specificato un file descriptor sbagliato.
   \item[\macro{EINVAL}] si è specificato un valore non valido per uno degli
@@ -881,7 +881,7 @@ in memoria di un file; il suo prototipo 
   
   \bodydesc{La funzione restituisce il puntatore alla zona di memoria mappata
     in caso di successo, e \macro{MAP\_FAILED} (-1) in caso di errore, nel
-    qual caso \var{errno} viene impostata ai valori:
+    qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EBADF}] Il file descriptor non è valido, e non si è usato
       \macro{MAP\_ANONYMOUS}.
@@ -1129,7 +1129,7 @@ contenuto della memoria mappata con il file su disco; il suo prototipo 
   Sincronizza i contenuti di una sezione di un file mappato in memoria.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore nel qual caso \var{errno} viene impostata ai valori:
+    errore nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] O \param{start} non è multiplo di \macro{PAGESIZE},
     o si è specificato un valore non valido per \param{flags}.
@@ -1185,7 +1185,7 @@ mappatura della memoria usando la funzione \func{munmap}, il suo prototipo 
   Rilascia la mappatura sulla sezione di memoria specificata.
 
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore nel qual caso \var{errno} viene impostata ai valori:
+    errore nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] L'intervallo specificato non ricade in una zona
       precedentemente mappata.
index c1bb182..30d71ca 100644 (file)
@@ -283,7 +283,7 @@ specificato. La funzione che permette di creare un nuovo link simbolico 
   \param{oldpath}.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
-    errore, nel qual caso la variabile \var{errno} restituisce i valori:
+    errore, nel qual caso la variabile \var{errno} assumerà i valori:
   \begin{errlist}
   \item[\macro{EPERM}] il filesystem che contiene \param{newpath} non supporta
     i link simbolici.
@@ -362,7 +362,7 @@ la funzione \func{readlink}, il cui prototipo 
   
   \bodydesc{La funzione restituisce il numero di caratteri letti dentro
     \var{buff} o -1 per un errore, nel qual caso la variabile
-    \var{errno} viene impostata a:
+    \var{errno} assumerà i valori:
   \begin{errlist}
   \item[\macro{EINVAL}] \param{path} non è un link simbolico o \param{size}
     non è positiva.
@@ -676,7 +676,7 @@ appunto per \textit{change directory}, il suo prototipo 
   Cambia la directory di lavoro corrente in \param{pathname}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 per un errore,
-    nel qual caso \var{errno} viene impostata a:
+    nel qual caso \var{errno} assumerà i valori:
   \begin{errlist}
   \item[\macro{ENOTDIR}] Non si è specificata una directory.
   \item[\macro{EACCESS}] Manca il permesso di ricerca su uno dei componenti di
@@ -696,8 +696,8 @@ usa \func{fchdir}, il cui prototipo 
   pathname.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
-    errore, in caso di errore \var{errno} viene impostata ai valori
-    \macro{EBADF} o \macro{EACCES}.}
+    errore, in caso di errore \var{errno} assumerà i valori \macro{EBADF} o
+    \macro{EACCES}.}
 \end{prototype}
 \noindent anche in questo caso \param{fd} deve essere un file descriptor
 valido che fa riferimento ad una directory. Inoltre l'unico errore di accesso
@@ -780,7 +780,7 @@ POSIX definisce la funzione \func{tempfile}, il cui prototipo 
   
   \bodydesc{La funzione ritorna il puntatore allo stream associato al file
     temporaneo in caso di successo e \macro{NULL} in caso di errore, nel qual
-    caso \var{errno} viene impostata a
+    caso \var{errno} assumerà i valori:
     \begin{errlist}
     \item[\macro{EINTR}] La funzione è stata interrotta da un segnale.
     \item[\macro{EEXIST}] Non è stato possibile generare un nome univoco.
@@ -807,8 +807,8 @@ il suo prototipo 
   \param{template}.
   
   \bodydesc{La funzione ritorna il puntatore \param{template} in caso di
-    successo e \macro{NULL} in caso di errore, nel qual caso \var{errno} viene
-    impostata a:
+    successo e \macro{NULL} in caso di errore, nel qual caso \var{errno}
+    assumerà i valori:
     \begin{errlist}
     \item[\macro{EINVAL}] \param{template} non termina con \code{XXXXXX}.
     \end{errlist}}
@@ -833,7 +833,7 @@ prototipo 
   finali di \param{template}.
   
   \bodydesc{La funzione ritorna il file descriptor in caso successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene impostata a:
+    -1 in caso di errore, nel qual caso \var{errno} assumerà i valori:
     \begin{errlist}
     \item[\macro{EINVAL}] \param{template} non termina con \code{XXXXXX}.
     \item[\macro{EEXIST}] non è riuscita a creare un file temporano, il
@@ -858,8 +858,8 @@ In OpenBSD 
   \code{XXXXXX} finali di \param{template}.
   
   \bodydesc{La funzione ritorna il puntatore al nome della directory in caso
-    successo e \macro{NULL} in caso di errore, nel qual caso \var{errno} viene
-    impostata a:
+    successo e \macro{NULL} in caso di errore, nel qual caso \var{errno}
+    assumerà i valori:
     \begin{errlist}
     \item[\macro{EINVAL}] \param{template} non termina con \code{XXXXXX}.
     \end{errlist}
@@ -909,11 +909,10 @@ queste funzioni sono i seguenti:
   eccetto che si usa con un file aperto, specificato tramite il suo file
   descriptor \var{filedes}.
   
-  \bodydesc{Le funzioni restituiscono zero in caso di successo e -1 per
-    un errore, in caso di errore \var{errno} può assumere uno dei
-    valori: \macro{EBADF}, \macro{ENOENT}, \macro{ENOTDIR},
-    \macro{ELOOP}, \macro{EFAULT}, \macro{EACCESS}, \macro{ENOMEM},
-    \macro{ENAMETOOLONG}.}
+  \bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 per un
+    errore, nel qual caso \var{errno} assumerà uno dei valori: \macro{EBADF},
+    \macro{ENOENT}, \macro{ENOTDIR}, \macro{ELOOP}, \macro{EFAULT},
+    \macro{EACCESS}, \macro{ENOMEM}, \macro{ENAMETOOLONG}.}
 \end{functions}
 \noindent il loro comportamento è identico, solo che operano rispettivamente
 su un file, su un link simbolico e su un file descriptor.
@@ -1285,12 +1284,12 @@ Cambia i tempi di ultimo accesso e modifica dell'inode specificato da
 \param{filename} secondo i campi \var{actime} e \var{modtime} di
 \param{times}. Se questa è \macro{NULL} allora viene usato il tempo corrente.
 
-\bodydesc{La funzione restituisce zero in caso di successo e -1 in caso
-  di errore, nel qual caso \var{errno} è impostata opportunamente.
-\begin{errlist}
-\item[\macro{EACCESS}] non si ha il permesso di scrittura sul file.
-\item[\macro{ENOENT}] \param{filename} non esiste.
-\end{errlist}}
+\bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
+  errore, nel qual caso \var{errno} assumerà uno dei valori:
+  \begin{errlist}
+  \item[\macro{EACCESS}] non si ha il permesso di scrittura sul file.
+  \item[\macro{ENOENT}] \param{filename} non esiste.
+  \end{errlist}}
 \end{prototype}
  
 La struttura \var{utimebuf} usata da \func{utime} è definita come:
@@ -1676,14 +1675,21 @@ questo si pu
 \begin{prototype}{unistd.h}
 {int access(const char *pathname, int mode)}
 
-Verifica i permessi di accesso, indicati da \var{mode}, per il file indicato
-da \var{pathname}.
+Verifica i permessi di accesso, indicati da \param{mode}, per il file indicato
+da \param{pathname}.
   
-\bodydesc{La funzione ritorna 0 se l'accesso è consentito, -1 altrimenti; in
-  quest'ultimo caso la variabile \var{errno} viene impostata secondo i codici
-  di errore: \macro{EACCES}, \macro{EROFS}, \macro{EFAULT}, \macro{EINVAL},
-  \macro{ENAMETOOLONG}, \macro{ENOENT}, \macro{ENOTDIR}, \macro{ELOOP},
-  \macro{EIO}.}
+\bodydesc{La funzione ritorna 0 se l'accesso è consentito, -1 se l'accesso non
+  è consentito ed in caso di errore; nel qual caso la variabile \var{errno}
+  assumerà i valori:
+  \begin{errlist}
+  \item[\macro{EINVAL}] il valore di \param{mode} non è valido.
+  \item[\macro{EACCES}] l'accesso al file non è consentito, o non si ha il
+    permesso di attraversare una delle directory di \param{pathname}.
+  \item[\macro{EROFS}] si è richiesto l'accesso in scrittura per un file su un
+    filesystem montato in sola lettura.
+  \end{errlist}
+  ed inoltre \macro{EFAULT}, \macro{ENAMETOOLONG}, \macro{ENOENT},
+  \macro{ENOTDIR}, \macro{ELOOP}, \macro{EIO}.}
 \end{prototype}
 
 I valori possibili per l'argomento \param{mode} sono esprimibili come
@@ -1882,7 +1888,7 @@ sono tre e i loro prototipi sono i seguenti:
   specificati dalle variabili \var{owner} e \var{group}. 
   
   \bodydesc{Le funzioni restituiscono zero in caso di successo e -1 per
-    un errore, in caso di errore \var{errno} viene impostata ai valori:
+    un errore, in caso di errore \var{errno} può assumere i valori:
   \begin{errlist}
   \item[\macro{EPERM}] L'userid effettivo non corrisponde a quello del
     proprietario del file o non è zero, o utente e gruppo non sono validi
@@ -1947,7 +1953,7 @@ radice con la funzione \func{chroot}, il cui prototipo 
   \param{path}.
   
 \bodydesc{La funzione restituisce zero in caso di successo e -1 per
-    un errore, in caso di errore \var{errno} viene impostata ai valori:
+    un errore, in caso di errore \var{errno} può assumere i valori:
   \begin{errlist}
   \item[\macro{EPERM}] L'userid effettivo del processo non è zero.
   \end{errlist}
index ac04421..78a524c 100644 (file)
@@ -222,10 +222,9 @@ Le funzioni che si possono usare per aprire uno stream sono solo tre:
   Apre il file specificato da \param{path} associandolo allo stream
   specificato da \param{stream}, se questo è già aperto prima lo chiude.
   
-  \bodydesc{Le funzioni ritornano un puntatore valido in caso di
-    successo e \macro{NULL} in caso di errore, in tal caso \var{errno}
-    viene impostata al valore ricevuto dalla funzione sottostante di cui è
-    fallita l'esecuzione.
+  \bodydesc{Le funzioni ritornano un puntatore valido in caso di successo e
+    \macro{NULL} in caso di errore, in tal caso \var{errno} assumerà il valore
+    ricevuto dalla funzione sottostante di cui è fallita l'esecuzione.
   
     Gli errori pertanto possono essere quelli di \code{malloc} per tutte
     e tre le funzioni, quelli \func{open} per \func{fopen}, quelli di
@@ -402,14 +401,14 @@ intero (di tipo \ctyp{int}) \macro{EOF}\footnote{la costante deve essere
 
 Dato che le funzioni dell'interfaccia degli stream sono funzioni di libreria
 che si appoggiano a delle system call, esse non impostano direttamente la
-variabile \var{errno}, che mantiene il valore impostato dalla system call che ha
-riportato l'errore. 
+variabile \var{errno}, che mantiene il valore impostato dalla system call che
+ha riportato l'errore.
 
 Siccome la condizione di end-of-file è anch'essa segnalata come errore, nasce
 il problema di come distinguerla da un errore effettivo; basarsi solo sul
 valore di ritorno della funzione e controllare il valore di \var{errno}
-infatti non basta, dato che quest'ultimo potrebbe essere stato impostato in una
-altra occasione, (si veda \secref{sec:sys_errno} per i dettagli del
+infatti non basta, dato che quest'ultimo potrebbe essere stato impostato in
+una altra occasione, (si veda \secref{sec:sys_errno} per i dettagli del
 funzionamento di \var{errno}).
 
 Per questo motivo tutte le implementazioni delle librerie standard
@@ -1326,8 +1325,8 @@ della funzione 
   Legge il file descriptor sottostante lo stream \param{stream}.
   
   \bodydesc{Restituisce il numero del file descriptor in caso di successo, e
-    -1 qualora \param{stream} non sia valido, nel qual caso imposta \var{errno}
-  a \macro{EBADF}.}
+    -1 qualora \param{stream} non sia valido, nel qual caso imposta
+    \var{errno} a \macro{EBADF}.}
 \end{prototype}
 \noindent ed in questo modo diventa possibile usare direttamente \func{fcntl}.
 
index c83cc73..ace7bcb 100644 (file)
@@ -183,8 +183,8 @@ prototipo 
   specificati da \var{mode}.
   
   \bodydesc{La funzione ritorna il file descriptor in caso di successo e -1 in
-    caso di errore. In questo caso la variabile \var{errno} viene impostata ad
-    uno dei valori:
+    caso di errore. In questo caso la variabile \var{errno} assumerà uno dei
+    valori:
   \begin{errlist}
   \item[\macro{EEXIST}] \var{pathname} esiste e si è specificato
     \macro{O\_CREAT} e \macro{O\_EXCL}.  
@@ -386,7 +386,7 @@ descriptor ritorna disponibile; il suo prototipo 
   Chiude il descrittore \var{fd}. 
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
-    ed in questo caso \var{errno} è impostata ai valori:
+    ed in questo caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
     \item[\macro{EBADF}]  \var{fd} non è un descrittore valido.
     \item[\macro{EINTR}] la funzione è stata interrotta da un segnale.
@@ -442,8 +442,8 @@ un valore qualsiasi con la funzione \func{lseek}, il cui prototipo 
   Imposta la posizione attuale nel file. 
   
   \bodydesc{La funzione ritorna valore della posizione corrente in caso di
-    successo e -1 in caso di errore nel qual caso \var{errno} viene impostata ad
-    uno dei valori:
+    successo e -1 in caso di errore nel qual caso \var{errno} assumerà uno dei
+    valori:
   \begin{errlist}
     \item[\macro{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
     \item[\macro{EINVAL}] \param{whence} non è un valore valido.
@@ -503,8 +503,7 @@ utilizzando la funzione \func{read}, il cui prototipo 
   Cerca di leggere \var{count} byte dal file \var{fd} al buffer \var{buf}.
   
   \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
-    valori:
+    -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EINTR}] la funzione è stata interrotta da un segnale prima di
     aver potuto leggere qualsiasi dato.
@@ -581,8 +580,8 @@ Cerca di leggere \var{count} byte dal file \var{fd}, a partire dalla posizione
 \var{offset}, nel buffer \var{buf}.
   
 \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e -1
-  in caso di errore, nel qual caso \var{errno} viene impostata secondo i valori
-  già visti per \func{read} e \func{lseek}.}
+  in caso di errore, nel qual caso \var{errno} assumerà i valori già visti per
+  \func{read} e \func{lseek}.}
 \end{prototype}
 \noindent che però diventa accessibile solo con la definizione della macro:
 \begin{verbatim}
@@ -608,8 +607,7 @@ funzione \func{write}, il cui prototipo 
   Scrive \var{count} byte dal buffer \var{buf} sul file \var{fd}.
   
   \bodydesc{La funzione ritorna il numero di byte scritti in caso di successo
-    e -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
-    valori:
+    e -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EINVAL}] \var{fd} è connesso ad un oggetto che non consente la
     scrittura.
@@ -654,8 +652,8 @@ Cerca di scrivere sul file \var{fd}, a partire dalla posizione \var{offset},
 \var{count} byte dal buffer \var{buf}.
   
 \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e -1
-  in caso di errore, nel qual caso \var{errno} viene impostata secondo i valori
-  già visti per \func{write} e \func{lseek}.}
+  in caso di errore, nel qual caso \var{errno} assumerà i valori già visti per
+  \func{write} e \func{lseek}.}
 \end{prototype}
 \noindent e per essa valgono le stesse considerazioni fatte per \func{pread}.
 
@@ -874,7 +872,7 @@ prototipo 
   Crea una copia del file descriptor \param{oldfd}.
   
   \bodydesc{La funzione ritorna il nuovo file descriptor in caso di successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
+    -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei
     valori:
   \begin{errlist}
   \item[\macro{EBADF}] \param{oldfd} non è un file aperto.
@@ -927,8 +925,7 @@ prototipo 
   Rende \param{newfd} una copia del file descriptor \param{oldfd}.
   
   \bodydesc{La funzione ritorna il nuovo file descriptor in caso di successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
-    valori:
+    -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] \param{oldfd} non è un file aperto o \param{newfd} ha un
     valore fuori dall'intervallo consentito per i file descriptor.
@@ -969,11 +966,11 @@ file descriptor viene usata la funzione \func{fcntl} il cui prototipo 
   sul file \param{fd}.
   
   \bodydesc{La funzione ha valori di ritorno diversi a seconda
-    dell'operazione. In caso di errore il valore di ritorno è -1 e la
-    variabile \var{errno} viene impostata ad un opportuno codice, quelli validi
-    in generale sono:
+    dell'operazione. In caso di errore il valore di ritorno è sempre -1 ed il
+    codice dell'errore è restituito nella variabile \var{errno}; i codici
+    possibili dipendono dal tipo di operazione, l'unico valido in generale è:
   \begin{errlist}
-  \item[\macro{EBADF}] \param{oldfd} non è un file aperto.
+  \item[\macro{EBADF}] \param{fd} non è un file aperto.
   \end{errlist}}
 \end{functions}
 
@@ -1012,8 +1009,8 @@ valori 
 \item[\macro{F\_SETLK}] richiede il file lock specificato da \param{lock} se
   \var{l\_type} è \macro{F\_RDLCK} o \macro{F\_WRLLCK} o lo rilascia se
   \var{l\_type} è \macro{F\_UNLCK}. Se il lock è tenuto da qualcun'altro
-  ritorna immediatamente restituendo -1 e imposta \var{errno} a \macro{EACCES} o
-  \macro{EAGAIN} (per i dettagli sul \textit{file locking} vedi
+  ritorna immediatamente restituendo -1 e imposta \var{errno} a \macro{EACCES}
+  \macro{EAGAIN} (per i dettagli sul \textit{file locking} vedi
   \secref{sec:file_locking}).
 \item[\macro{F\_SETLKW}] identica a \macro{F\_SETLK} eccetto per il fatto che
   la funzione non ritorna subito ma attende che il blocco sia rilasciato. Se
@@ -1085,8 +1082,8 @@ per ogni singolo dispositivo.  Il prototipo di questa funzione 
   
   \bodydesc{La funzione nella maggior parte dei casi ritorna 0, alcune
     operazioni usano però il valore di ritorno per restituire informazioni. In
-    caso di errore viene sempre restituito -1 e \var{errno} viene impostata ad
-    uno dei valori seguenti:
+    caso di errore viene sempre restituito -1 ed \var{errno} assumerà uno dei
+    valori:
   \begin{errlist}
   \item[\macro{ENOTTY}] il file \param{fd} non è associato con un device, o la
     richiesta non è applicabile all'oggetto a cui fa riferimento \param{fd}.
diff --git a/ipc.tex b/ipc.tex
index 6bb3836..09017aa 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -910,8 +910,8 @@ file ed un numero di versione; il suo prototipo 
   Restituisce una chiave per identificare un oggetto del System V IPC.
   
   \bodydesc{La funzione restituisce la chiave in caso di successo e -1
-  altrimenti, nel qual caso \var{errno} viene settata ad uno dei possibili
-  codici di errore di \func{stat}.}
+    altrimenti, nel qual caso \var{errno} sarà uno dei possibili codici di
+    errore di \func{stat}.}
 \end{functions}
 
 La funzione determina un valore della chiave sulla base di \param{pathname},
@@ -1165,8 +1165,7 @@ una 
   Restituisce l'identificatore di una cosa di messaggi.
   
   \bodydesc{La funzione restituisce l'identificatore (un intero positivo) o -1
-    in caso di errore, nel qual caso \var{errno} viene settato ad uno dei
-    valori: 
+    in caso di errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EACCES}] Il processo chiamante non ha i privilegi per accedere
   alla coda richiesta.  
@@ -1340,7 +1339,7 @@ prototipo 
   Esegue l'operazione specificata da \param{cmd} sulla coda \param{msqid}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo o -1 in caso di
-    errore, nel qual caso \var{errno} viene settato a:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EACCES}] Si è richiesto \macro{IPC\_STAT} ma processo chiamante
     non ha i privilegi di lettura sulla coda.
@@ -1395,7 +1394,7 @@ messaggio su una coda si utilizza la funzione \func{msgsnd}; il suo prototipo
   Invia un messaggio sulla coda \param{msqid}.
   
   \bodydesc{La funzione restituisce 0, e -1 in caso di errore, nel qual caso
-    \var{errno} viene settata a:
+    \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EACCES}] Non si hanno i privilegi di accesso sulla coda.
   \item[\macro{EIDRM}] La coda è stata cancellata.
@@ -1507,8 +1506,8 @@ rimosso dalla stessa) 
   Legge un messaggio dalla coda \param{msqid}.
   
   \bodydesc{La funzione restituisce il numero di byte letti in caso di
-    successo, e -1 in caso di errore, nel qual caso \var{errno} viene settata
-    a:
+    successo, e -1 in caso di errore, nel qual caso \var{errno} assumerà uno
+    dei valori:
   \begin{errlist}
   \item[\macro{EACCES}] Non si hanno i privilegi di accesso sulla coda.
   \item[\macro{EIDRM}] La coda è stata cancellata.
@@ -1566,8 +1565,8 @@ disponibili per la lettura, 
 funzione ritorna immediatamente con un errore \macro{ENOMSG}. Altrimenti la
 funzione ritorna normalmente non appena viene inserito un messaggio del tipo
 desiderato, oppure ritorna con errore qualora la coda sia rimossa (con
-\var{errno} settata a \macro{EIDRM}) o se il processo viene interrotto da un
-segnale (con \var{errno} settata a \macro{EINTR}).
+\var{errno} impostata a \macro{EIDRM}) o se il processo viene interrotto da un
+segnale (con \var{errno} impostata a \macro{EINTR}).
 
 Una volta completata con successo l'estrazione del messaggio dalla coda, la
 funzione aggiorna i dati mantenuti in \var{msqid\_ds}, in particolare vengono
@@ -1640,8 +1639,8 @@ permette di creare o ottenere l'identificatore di un insieme di semafori 
   Restituisce l'identificatore di un insieme di semafori.
   
   \bodydesc{La funzione restituisce l'identificatore (un intero positivo) o -1
-    in caso di errore, nel qual caso \var{errno} viene settato agli stessi
-    valori visti per \func{msgget}.}
+    in caso di errore, nel qual caso \var{errno} assumerà gli stessi valori
+    visti per \func{msgget}.}
 \end{functions}
 
 La funzione è del tutto analoga a \func{msgget}, solo che in questo caso
@@ -1786,7 +1785,8 @@ loro inizializzazione) 
   
   \bodydesc{La funzione restituisce in caso di successo un valore positivo
     quanto usata con tre argomenti ed un valore nullo quando usata con
-    quattro. In caso di errore restituisce -1, ed \var{errno} viene settata a:
+    quattro. In caso di errore restituisce -1, ed \var{errno} assumerà uno dei
+    valori:
     \begin{errlist}
     \item[\macro{EACCES}] Il processo non ha i privilegi per eseguire
       l'operazione richiesta.
@@ -1923,8 +1923,8 @@ prototipo 
   Restituisce l'identificatore di una memoria condivisa.
   
   \bodydesc{La funzione restituisce l'identificatore (un intero positivo) o -1
-    in caso di errore, nel qual caso \var{errno} viene settato agli stessi
-    valori visti per \func{msgget}.}
+    in caso di errore, nel qual caso \var{errno} assumerà gli stessi valori
+    visti per \func{msgget}.}
 \end{functions}
 
 La funzione, come \func{semget}, è del tutto analoga a \func{msgget}, ed
index ca92e15..770e2b8 100644 (file)
@@ -175,7 +175,7 @@ pu
   programma. 
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, \var{errno} non viene impostata.}
+    fallimento, \var{errno} non viene modificata.}
 \end{prototype}
 \noindent la funzione richiede come argomento l'indirizzo della opportuna
 funzione di pulizia da chiamare all'uscita, che non deve prendere argomenti e
@@ -192,7 +192,7 @@ definita su altri sistemi; il suo prototipo 
   rispetto a quello di registrazione.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, \var{errno} non viene impostata.}
+    fallimento, \var{errno} non viene modificata.}
 \end{prototype}
 
 In questo caso la funzione da chiamare prende due parametri, il primo dei
@@ -456,20 +456,20 @@ prototipi sono i seguenti:
   
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene impostata a \macro{ENOMEM}.
+  \var{errno} assumerà il valore \macro{ENOMEM}.
 \funcdecl{void *malloc(size\_t size)}
   Alloca \var{size} byte nello heap. La memoria non viene inizializzata.
 
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene impostata a \macro{ENOMEM}.
+  \var{errno} assumerà il valore \macro{ENOMEM}.
 \funcdecl{void *realloc(void *ptr, size\_t size)}
   Cambia la dimensione del blocco allocato all'indirizzo \var{ptr}
   portandola a \var{size}.
 
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene impostata a \macro{ENOMEM}.
+  \var{errno} assumerà il valore \macro{ENOMEM}.
 \funcdecl{void free(void *ptr)}
   Disalloca lo spazio di memoria puntato da \var{ptr}.
 
@@ -579,7 +579,7 @@ prototipo 
 
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene impostata a \macro{ENOMEM}.
+  \var{errno} assumerà il valore \macro{ENOMEM}.
 \end{prototype}
 \noindent ma in questo caso non è più necessario liberare la memoria (e quindi
 non esiste un analogo della \func{free}) in quanto essa viene rilasciata 
@@ -631,7 +631,7 @@ analoghe system call a cui fanno da interfaccia. I loro prototipi sono:
   \var{end\_data\_segment}.
   
   La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene impostata a \macro{ENOMEM}.
+    fallimento, nel qual caso \var{errno} assumerà il valore \macro{ENOMEM}.
 
   \funcdecl{void *sbrk(ptrdiff\_t increment)} Incrementa lo spazio dati di un
   programma di \var{increment}. Un valore zero restituisce l'attuale posizione
@@ -639,7 +639,7 @@ analoghe system call a cui fanno da interfaccia. I loro prototipi sono:
   
   La funzione restituisce il puntatore all'inizio della nuova zona di memoria
   allocata in caso di successo e \macro{NULL} in caso di fallimento, nel qual
-  caso \macro{errno} viene impostata a \macro{ENOMEM}.
+  caso \macro{errno} assumerà il valore \macro{ENOMEM}.
 \end{functions}
 \noindent in genere si usa \func{sbrk} con un valore zero per ottenere
 l'attuale posizione della fine del segmento dati.
@@ -740,7 +740,7 @@ Le funzioni per bloccare e sbloccare singole sezioni di memoria sono
 
   
   \bodydesc{Entrambe le funzioni ritornano 0 in caso di successo e -1 in
-    caso di errore, nel qual caso \var{errno} è impostata ad uno dei
+    caso di errore, nel qual caso \var{errno} assumerà uno dei
     valori seguenti:
   \begin{errlist}
   \item[\macro{ENOMEM}] alcuni indirizzi dell'intervallo specificato non
index f3298c0..90b1e2c 100644 (file)
@@ -1111,9 +1111,9 @@ Sostituiscono l'immagine corrente del processo con quella indicata nel primo
 argomento. I parametri successivi consentono di specificare gli argomenti a
 linea di comando e l'ambiente ricevuti dal nuovo processo.
 
-\bodydesc{Queste funzioni ritornano solo in caso di errore, restituendo
-  -1; nel qual caso \var{errno} andrà ad assumere i valori visti in
-  precedenza per \func{execve}.}
+\bodydesc{Queste funzioni ritornano solo in caso di errore, restituendo -1;
+  nel qual caso \var{errno} assumerà i valori visti in precedenza per
+  \func{execve}.}
 \end{functions}
 
 Per capire meglio le differenze fra le funzioni della famiglia si può fare
@@ -1743,8 +1743,8 @@ questa funzione 
   \param{size}.
   
   \bodydesc{La funzione restituisce il numero di gruppi letti in caso di
-    successo e -1 in caso di fallimento, nel qual caso \var{errno} viene
-    impostata a
+    successo e -1 in caso di fallimento, nel qual caso \var{errno} assumerà
+    i valori
     \begin{errlist}
     \item[\macro{EFAULT}] \param{list} non ha un indirizzo valido.
     \item[\macro{EINVAL}] il valore di \param{size} è diverso da zero ma
@@ -1785,7 +1785,7 @@ delle due 
   supplementari del processo ai valori specificati in \param{list}.
 
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene impostata a:
+    fallimento, nel qual caso \var{errno} assumerà i valori:
     \begin{errlist}
     \item[\macro{EFAULT}] \param{list} non ha un indirizzo valido.
     \item[\macro{EPERM}] il processo non ha i privilegi di amministratore.
@@ -1805,7 +1805,7 @@ un utente specifico, si pu
   aggiungendo il gruppo addizionale \param{group}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene impostata agli stessi valori di
+    fallimento, nel qual caso \var{errno} assumerà gli stessi valori di
     \func{setgroups} più \macro{ENOMEM} quando non c'è memoria sufficiente per
     allocare lo spazio per informazioni dei gruppi.}
 \end{functions}
index 58e4ddb..7b7b738 100644 (file)
@@ -154,9 +154,43 @@ processo con lo stesso valore che hanno nel processo padre, per cui un
 processo appena creato appartiene sempre allo stesso raggruppamento e alla
 stessa sessione del padre.
 
-Ciascun gruppo di processi ha sempre un processo principale, il
-\textit{process leader}, che è quello che è identificato dall'avere il suo
-\acr{pgid} uguale al \acr{pid}, per
+Ciascun gruppo di processi ha sempre un processo principale, il cosiddetto
+\textit{process leader}, che è identificato dall'avere un \acr{pgid} uguale al
+suo \acr{pid}, in genere questo è il primo processo del gruppo, che si
+incarica di lanciare tutti gli altri. Un nuovo gruppo si crea con la funzione
+\func{setpgrp},\footnote{questa è la definizione di POSIX.1, BSD definisce una
+  funzione con lo stesso nome, che però è identica a \func{setpgid}; nelle
+  \acr{glibc} viene sempre usata sempre questa definizione, a meno di non
+  richiedere esplicitamente la compatibilità all'indietro con BSD, definendo
+  la macro \macro{\_BSD\_SOURCE}.} il cui prototipo è:
+\begin{prototype}{unistd.h}{int setpgrp(void)}
+  Modifica il \acr{pgid} al valore del \acr{pid} del processo corrente.
+  
+  \bodydesc{La funzione restituisce il valore del nuovo \textit{process
+      group}.}
+\end{prototype}
+
+La funzione, assegnando al \acr{pgid} il valore del \acr{pid} processo
+corrente, rende questo \textit{process leader} di un nuovo gruppo, tutti i
+successivi processi da esso creati apparterranno (a meno di non cambiare di
+nuovo il \acr{pgid}) al nuovo gruppo. È possibile invece spostare un processo
+da un gruppo ad un altro con la funzione \func{setpgid}, il cui prototipo è:
+\begin{prototype}{unistd.h}{int setpgid(pid\_t pid, pid\_t pgid)}
+  Assegna al \acr{pgid} del processo \param{pid} il valore \param{pgid}.
+  
+  \bodydesc{La funzione ritorna il valore del nuovo \textit{process group}, e
+  -1 in caso di errore, nel qual caso \var{errno} assumerà i valori:
+    \begin{errlist}
+    \item[\macro{ESRCH}] Il processo selezionato non esiste.
+    \item[\macro{EPERM}] Il processo selezionato non fa parte della stessa
+    sessione del processo corrente.
+    \end{errlist}
+ }
+\end{prototype}
+
+
+
+
 
 La differenza fra i due identificatori è che un processo
 può cambiare \acr{pgid} soltanto ad un valore che corrisponda al
index 3fada26..39d70ef 100644 (file)
@@ -951,7 +951,7 @@ la funzione \func{kill}; il cui prototipo 
   processo specificato con \param{pid}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    errore nel qual caso \var{errno} può assumere i valori:
+    errore nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] Il segnale specificato non esiste.
     \item[\macro{ESRCH}] Il processo selezionato non esiste.
@@ -1095,7 +1095,7 @@ suo prototipo 
   \param{value} sul timer specificato da \func{which}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} può assumere i valori \macro{EINVAL} e
+    errore, nel qual caso \var{errno} assumerà uno dei valori \macro{EINVAL} o
     \macro{EFAULT}.}
 \end{prototype}
 
@@ -1256,8 +1256,8 @@ quello di usare la funzione \func{pause}, il cui prototipo 
   Pone il processo in stato di sleep fino al ritorno di un gestore.
   
   \bodydesc{La funzione ritorna solo dopo che un segnale è stato ricevuto ed
-    il relativo gestore è ritornato, nel qual caso restituisce -1 e imposta
-    \var{errno} a \macro{EINTR}.}
+    il relativo gestore è ritornato, nel qual caso restituisce -1 e
+    \var{errno} assumerà il valore \macro{EINTR}.}
 \end{prototype}
 
 La funzione segnala sempre una condizione di errore (il successo sarebbe
@@ -1306,7 +1306,8 @@ seguono quella di SUSv2 che prevede il seguente prototipo:
   Pone il processo in stato di sleep per \param{usec} microsecondi.
   
   \bodydesc{La funzione restituisce zero se l'attesa viene completata, o -1 in
-    caso di errore, nel qual caso \var{errno} è impostata a \macro{EINTR}.}
+    caso di errore, nel qual caso \var{errno} assumerà il valore
+    \macro{EINTR}.}
 
 \end{prototype}
 
@@ -1321,7 +1322,7 @@ POSIX1.b, il cui prototipo 
   In caso di interruzione restituisce il tempo restante in \param{rem}.
   
   \bodydesc{La funzione restituisce zero se l'attesa viene completata, o -1 in
-    caso di errore, nel qual caso \var{errno} è impostata a 
+    caso di errore, nel qual caso \var{errno} assumerà uno dei valori: 
     \begin{errlist}
     \item[\macro{EINVAL}] si è specificato un numero di secondi negativo o un
       numero di nanosecondi maggiore di 999.999.999.
@@ -1716,9 +1717,9 @@ degli insiemi di segnali: \func{sigemptyset}, \func{sigfillset},
   
   \bodydesc{Le prime quattro funzioni ritornano 0 in caso di successo, mentre
     \func{sigismember} ritorna 1 se \param{signum} è in \param{set} e 0
-    altrimenti. In caso di errore tutte ritornano -1, con \var{errno} impostata a
-    \macro{EINVAL} (il solo errore possibile è che \param{signum} non sia un
-    segnale valido).}
+    altrimenti. In caso di errore tutte ritornano -1, con \var{errno}
+    impostata a \macro{EINVAL} (il solo errore possibile è che \param{signum}
+    non sia un segnale valido).}
 \end{functions}
 
 Dato che in generale non si può fare conto sulle caratteristiche di una
@@ -1900,13 +1901,13 @@ siginfo_t {
   \label{fig:sig_siginfo_t}
 \end{figure}
  
-Installando un gestore di tipo \var{sa\_sigaction} diventa allora
-possibile accedere alle informazioni restituite attraverso il puntatore a
-questa struttura. Tutti i segnali impostano i campi \var{si\_signo}, che riporta
-il numero del segnale ricevuto, \var{si\_errno}, che riporta, quando diverso
-da zero, il codice dell'errore associato al segnale, e \var{si\_code}, che
-viene usato dal kernel per specificare maggiori dettagli riguardo l'evento che
-ha causato l'emissione del segnale.
+Installando un gestore di tipo \var{sa\_sigaction} diventa allora possibile
+accedere alle informazioni restituite attraverso il puntatore a questa
+struttura. Tutti i segnali impostano i campi \var{si\_signo}, che riporta il
+numero del segnale ricevuto, \var{si\_errno}, che riporta, quando diverso da
+zero, il codice dell'errore associato al segnale, e \var{si\_code}, che viene
+usato dal kernel per specificare maggiori dettagli riguardo l'evento che ha
+causato l'emissione del segnale.
 
 In generale \var{si\_code} contiene, per i segnali generici, per quelli
 real-time e per tutti quelli inviati tramite \func{kill}, informazioni circa
@@ -2444,7 +2445,7 @@ funzione, \func{sigqueue}, il cui prototipo 
   gestore il valore \param{value}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EAGAIN}] La coda è esarita, ci sono già \macro{SIGQUEUE\_MAX}
     segnali in attesa si consegna.
@@ -2486,7 +2487,7 @@ meccanismi di comunicazione elementare; la prima di queste funzioni 
   Attende che uno dei segnali specificati in \param{set} sia pendente.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EINTR}] La funzione è stata interrotta.
   \item[\macro{EINVAL}] Si è specificato un valore non valido per
@@ -2531,8 +2532,8 @@ relativi prototipi sono:
 
   
   \bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori già visti per
-    \func{sigwait}, ai quali se aggiunge, per \func{sigtimedwait}:
+    errore, nel qual caso \var{errno} assumerà uno dei valori già visti per
+    \func{sigwait}, ai quali si aggiunge, per \func{sigtimedwait}:
   \begin{errlist}
   \item[\macro{EAGAIN}] Si è superato il timeout senza che un segnale atteso
     fosse emmesso.
index 2422abd..b0c4ddf 100644 (file)
@@ -488,7 +488,7 @@ suo prototipo 
   Restituisce informazioni sul sistema nella struttura \param{info}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
-  fallimento, nel qual caso \var{errno} viene impostata a \macro{EFAULT}.}
+    fallimento, nel qual caso \var{errno} assumerà il valore \macro{EFAULT}.}
 \end{prototype}
 
 La funzione, che viene usata dal comando \cmd{uname}, restituisce le
@@ -577,7 +577,7 @@ l'implementazione 
 Legge o scrive uno dei parametri di sistema.
 
 \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-  errore, nel qual caso \var{errno} viene impostata ai valori:
+  errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EPERM}] il processo non ha il permesso di accedere ad uno dei
     componenti nel cammino specificato per il parametro, o non ha il permesso
@@ -806,7 +806,7 @@ Una volta che non si voglia pi
   Smonta il filesystem montato sulla directory \param{target}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene impostata a:
+    fallimento, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EPERM}] il processo non ha i privilegi di amministratore.
   \item[\macro{EBUSY}]  \param{target} è la directory di lavoro di qualche
@@ -861,7 +861,7 @@ informazioni riguardo al filesystem su cui si trova un certo file, sono
   posto il file specificato.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{ENOSYS}] il filesystem su cui si trova il file specificato non
   supporta la funzione.
@@ -1490,7 +1490,7 @@ sono:
   Imposta il limite per la risorsa \param{resource}.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] I valori per \param{resource} non sono validi.
     \item[\macro{EPERM}] Un processo senza i privilegi di amministratore ha
@@ -1868,7 +1868,7 @@ sono:
   Imposta il tempo di sistema.
   
   \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in
-    caso di errore, nel qual caso \var{errno} può assumere il valori
+    caso di errore, nel qual caso \var{errno} può assumere i valori
     \macro{EINVAL} \macro{EFAULT} e per \func{settimeofday} anche
     \macro{EPERM}.}
 \end{functions}
@@ -2372,8 +2372,8 @@ prima funzione che si pu
   
   \bodydesc{La funzione ritorna il puntatore alla stringa col messaggio di
     errore in caso di successo e \macro{NULL} in caso di errore, nel qual caso
-    \var{errno} sarà impostata a \macro{EINVAL} se si è specificato un numero di
-    errore non valido.}
+    \var{errno} assumerà il valore \macro{EINVAL} se si è specificato un
+    numero di errore non valido.}
 \end{prototype}
 
 In generale \func{strerror} viene usata passando \var{errno} come parametro;