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 3b0575ae289f19441b6dbe59a50d2b032f809c0b..05e75f67e5a0fd1825c9efe8b0c9a6aa0e339465 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
   
   \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.
   \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
   
 \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.
   \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
   
   \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.
   \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
   \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.
   \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
   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}.
     \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
   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}.
     \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
   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
   \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
   
   \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}.
     \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
   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}.
     \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
   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.
     \begin{errlist}
     \item[\macro{EINVAL}] L'intervallo specificato non ricade in una zona
       precedentemente mappata.
index c1bb182b55d93865bc3f79cbd79ec761be294b10..30d71caf2719152003dd00200760dbfe78023d7a 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
   \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.
   \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
   
   \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.
   \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,
   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
   \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
   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
 \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
   
   \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.
     \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
   \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}}
     \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
   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
     \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
   \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}
     \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}.
   
   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.
 \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.
 
 \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:
 \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)}
 
 \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
 \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
   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
   \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
   \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}
   \begin{errlist}
   \item[\macro{EPERM}] L'userid effettivo del processo non è zero.
   \end{errlist}
index ac0442116f60014b2af80f6c2f43751bc2efcab2..78a524cee948dfd9f87b661370e5e019454e8ba1 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.
   
   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
   
     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
 
 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}
 
 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
 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
   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}.
 
 \end{prototype}
 \noindent ed in questo modo diventa possibile usare direttamente \func{fcntl}.
 
index c83cc737d81eff06f46650d022bd7d292d6af99b..ace7bcb13cdc45c704a41cf1e3e3781fc6e97ab5 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
   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}.  
   \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,
   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.
   \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
   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.
   \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
   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.
   \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
 \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}
 \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
   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.
   \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
 \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}.
 
 \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
   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.
     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
   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.
   \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
   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}
   \begin{errlist}
-  \item[\macro{EBADF}] \param{oldfd} non è un file aperto.
+  \item[\macro{EBADF}] \param{fd} non è un file aperto.
   \end{errlist}}
 \end{functions}
 
   \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
 \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
   \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
   
   \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}.
   \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 6bb3836063151a4225ae1c543b38fbd041b621ba..09017aaebc8e1f8215e47aac32fb57f7131b7231 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
   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},
 \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
   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.  
   \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
   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.
   \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
   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.
   \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
   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.
   \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
 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
 
 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
   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
 \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
   
   \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.
     \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
   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
 \end{functions}
 
 La funzione, come \func{semget}, è del tutto analoga a \func{msgget}, ed
index ca92e15b19cc3bbd7ce829c8e53493e1b91fd719..770e2b81214373f387a2373c65b3600d1954ec63 100644 (file)
@@ -175,7 +175,7 @@ pu
   programma. 
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
   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
 \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
   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
 \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
   
   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
 \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
 \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}.
 
 \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
 
   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 
 \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
   \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
 
   \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
   
   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.
 \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
 
   
   \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
     valori seguenti:
   \begin{errlist}
   \item[\macro{ENOMEM}] alcuni indirizzi dell'intervallo specificato non
index f3298c0faab606ec18a27d234db73eb9305b5f91..90b1e2ca6ffb436a615aa6450afe31bf30127f8c 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.
 
 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
 \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
   \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
     \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
   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.
     \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
   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}
     \func{setgroups} più \macro{ENOMEM} quando non c'è memoria sufficiente per
     allocare lo spazio per informazioni dei gruppi.}
 \end{functions}
index 58e4ddbe03ffbbdf08c4d31eb1128ef34e88c781..7b7b738c1be28baa175c0487c699f66a07199f24 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.
 
 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
 
 La differenza fra i due identificatori è che un processo
 può cambiare \acr{pgid} soltanto ad un valore che corrisponda al
index 3fada26d81aae213d2506bc2aafe79958443ce52..39d70ef981f267689d3804813963725a1f5091b8 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
   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.
     \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
   \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}
 
     \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
   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
 \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
   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}
 
 
 \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
   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.
     \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
   
   \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
 \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}
  
   \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
 
 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
   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.
   \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
   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
   \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
 
   
   \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.
   \begin{errlist}
   \item[\macro{EAGAIN}] Si è superato il timeout senza che un segnale atteso
     fosse emmesso.
index 2422abdc7db8caf52ac807b986140d74311de700..b0c4ddfb3b1bed1bd55e8522de5b0c47010d6561 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
   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
 \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
 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
   \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
   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
   \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
   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.
   \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
   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
     \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
   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}
     \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
   
   \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;
 \end{prototype}
 
 In generale \func{strerror} viene usata passando \var{errno} come parametro;