Sempre correzioni di D. Masini
[gapil.git] / system.tex
index c68686fcc5d9cfdd3d4e517f516bc04780ddd8fc..07e74f7e178430059f5e4f146d28a1a0c5da54a6 100644 (file)
@@ -10,7 +10,7 @@ e degli errori.
 
 
 
 
 
 
-\section{La lettura delle caratteristiche del sistema}
+\section{Capacità e caratteristiche del sistema}
 \label{sec:sys_characteristics}
 
 In questa sezione tratteremo le varie modalità con cui un programma può
 \label{sec:sys_characteristics}
 
 In questa sezione tratteremo le varie modalità con cui un programma può
@@ -21,11 +21,11 @@ l'architettura hardware, l'implementazione del kernel e delle librerie, le
 opzioni di configurazione.
 
 La definizione di queste caratteristiche ed il tentativo di provvedere dei
 opzioni di configurazione.
 
 La definizione di queste caratteristiche ed il tentativo di provvedere dei
-meccanismi generali che i programmi potessero usare per ricavarle è uno degli
+meccanismi generali che i programmi possono usare per ricavarle è uno degli
 aspetti più complessi e controversi con cui le diverse standardizzazioni si
 sono dovute confrontare, spesso con risultati spesso tutt'altro che chiari.
 aspetti più complessi e controversi con cui le diverse standardizzazioni si
 sono dovute confrontare, spesso con risultati spesso tutt'altro che chiari.
-Proveremo comunque a dare una descrizione dei principali metodi previsti dai
-vari standard per ricavare sia le caratteristiche specifiche del sistema, che
+Daremo comunque una descrizione dei principali metodi previsti dai vari
+standard per ricavare sia le caratteristiche specifiche del sistema, che
 quelle della gestione dei file.
 
 
 quelle della gestione dei file.
 
 
@@ -35,11 +35,11 @@ quelle della gestione dei file.
 Quando si devono determinare le le caratteristiche generali del sistema ci si
 trova di fronte a diverse possibilità; alcune di queste infatti possono
 dipendere dall'architettura dell'hardware (come le dimensioni dei tipi
 Quando si devono determinare le le caratteristiche generali del sistema ci si
 trova di fronte a diverse possibilità; alcune di queste infatti possono
 dipendere dall'architettura dell'hardware (come le dimensioni dei tipi
-interi), o dal sistema operativo (come la presenza o meno dei \textit{saved
-  id}), altre invece possono dipendere dalle opzioni con cui si è costruito
-il sistema (ad esempio da come si è compilato il kernel), o dalla
-configurazione del medesimo; per questo motivo in generale sono necessari due
-tipi diversi di funzionalità:
+interi), o dal sistema operativo (come la presenza o meno del gruppo degli
+identificatori \textit{saved}), altre invece possono dipendere dalle opzioni
+con cui si è costruito il sistema (ad esempio da come si è compilato il
+kernel), o dalla configurazione del medesimo; per questo motivo in generale
+sono necessari due tipi diversi di funzionalità:
 \begin{itemize*}
 \item la possibilità di determinare limiti ed opzioni al momento della
   compilazione.
 \begin{itemize*}
 \item la possibilità di determinare limiti ed opzioni al momento della
   compilazione.
@@ -241,9 +241,10 @@ valori ottenuti da \func{sysconf}.
     \hline
     \macro{\_POSIX\_JOB\_CONTROL}& il sistema supporta il 
                                    \textit{job control} (vedi 
     \hline
     \macro{\_POSIX\_JOB\_CONTROL}& il sistema supporta il 
                                    \textit{job control} (vedi 
-                                   \secref{sec:sess_xxx}).\\
-    \macro{\_POSIX\_SAVED\_IDS}  & il sistema supporta i \textit{saved id} 
-                                   (vedi \secref{sec:proc_access_id}). 
+                                   \secref{sec:sess_job_control}).\\
+    \macro{\_POSIX\_SAVED\_IDS}  & il sistema supporta gli identificatori del 
+                                   gruppo \textit{saved} (vedi 
+                                   \secref{sec:proc_access_id})
                                    per il controllo di accesso dei processi\\
     \macro{\_POSIX\_VERSION}     & fornisce la versione dello standard POSIX.1
                                    supportata nel formato YYYYMML (ad esempio 
                                    per il controllo di accesso dei processi\\
     \macro{\_POSIX\_VERSION}     & fornisce la versione dello standard POSIX.1
                                    supportata nel formato YYYYMML (ad esempio 
@@ -263,15 +264,15 @@ incluso automaticamente all'interno di \file{limits.h}). Di questi vale la
 pena menzionare alcune macro di uso comune, (riportate in
 \tabref{tab:sys_posix1_other}), che non indicano un valore specifico, ma
 denotano la presenza di alcune funzionalità nel sistema (come il supporto del
 pena menzionare alcune macro di uso comune, (riportate in
 \tabref{tab:sys_posix1_other}), che non indicano un valore specifico, ma
 denotano la presenza di alcune funzionalità nel sistema (come il supporto del
-\textit{job control} o dei \textit{saved id}).
+\textit{job control} o degli identificatori del gruppo \textit{saved}).
 
 Oltre allo standard POSIX.1, anche lo standard POSIX.2 definisce una serie di
 altre costanti. Siccome queste sono principalmente attinenti a limiti relativi
 alle applicazioni di sistema presenti (come quelli su alcuni parametri delle
 espressioni regolari o del comando \cmd{bc}), non li tratteremo
 esplicitamente, se ne trova una menzione completa nell'header file
 
 Oltre allo standard POSIX.1, anche lo standard POSIX.2 definisce una serie di
 altre costanti. Siccome queste sono principalmente attinenti a limiti relativi
 alle applicazioni di sistema presenti (come quelli su alcuni parametri delle
 espressioni regolari o del comando \cmd{bc}), non li tratteremo
 esplicitamente, se ne trova una menzione completa nell'header file
-\file{bits/posix2\_lim.h}, e alcuni di loro sono descritti nella man page di
-\func{sysconf} e nel manuale delle \acr{glibc}.
+\file{bits/posix2\_lim.h}, e alcuni di loro sono descritti nella pagina di
+manuale di \func{sysconf} e nel manuale delle \acr{glibc}.
 
 
 \subsection{La funzione \func{sysconf}}
 
 
 \subsection{La funzione \func{sysconf}}
@@ -331,7 +332,7 @@ relative spiegazioni, si pu
       \textit{process time} (vedi \secref{sec:sys_unix_time}).\\
       \texttt{\_SC\_JOB\_CONTROL}&\macro{\_POSIX\_JOB\_CONTROL}&
       Indica se è supportato il \textit{job control} (vedi
       \textit{process time} (vedi \secref{sec:sys_unix_time}).\\
       \texttt{\_SC\_JOB\_CONTROL}&\macro{\_POSIX\_JOB\_CONTROL}&
       Indica se è supportato il \textit{job control} (vedi
-      \secref{sec:sess_xxx}) in stile POSIX.\\
+      \secref{sec:sess_job_control}) in stile POSIX.\\
       \texttt{\_SC\_SAVED\_IDS}&\macro{\_POSIX\_SAVED\_IDS}&
       Indica se il sistema supporta i \textit{saved id} (vedi
       \secref{sec:proc_access_id}).\\ 
       \texttt{\_SC\_SAVED\_IDS}&\macro{\_POSIX\_SAVED\_IDS}&
       Indica se il sistema supporta i \textit{saved id} (vedi
       \secref{sec:proc_access_id}).\\ 
@@ -387,19 +388,20 @@ riportate in \tabref{tab:sys_file_macro}.
 \begin{table}[htb]
   \centering
   \footnotesize
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|r|l|}
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline                
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline                
-    \macro{NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
-    \macro{PATH\_MAX}& 256  & lunghezza in byte di pathname.\\
-    \macro{PIPE\_BUF}&4096  & byte scrivibili atomicamente in una pipe\\
     \macro{LINK\_MAX}   &8  & numero massimo di link a un file\\
     \macro{LINK\_MAX}   &8  & numero massimo di link a un file\\
-    \macro{MAX\_CANON}&255  & spazio disponibile nella coda di input
-                              canonica del terminale\\
+    \macro{NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
+    \macro{PATH\_MAX}& 256  & lunghezza in byte di un pathname.\\
+    \macro{PIPE\_BUF}&4096  & byte scrivibili atomicamente in una pipe
+                              (vedi \secref{sec:ipc_pipes}).\\
+    \macro{MAX\_CANON}&255  & dimensione di una riga di terminale in modo 
+                              canonico (vedi \secref{sec:term_design}).\\
     \macro{MAX\_INPUT}&255  & spazio disponibile nella coda di input 
     \macro{MAX\_INPUT}&255  & spazio disponibile nella coda di input 
-                              del terminale\\
+                              del terminale (vedi \secref{sec:term_design}).\\
     \hline                
   \end{tabular}
   \caption{Macro per i limiti sulle caratteristiche dei file.}
     \hline                
   \end{tabular}
   \caption{Macro per i limiti sulle caratteristiche dei file.}
@@ -415,21 +417,20 @@ analoghe di \tabref{tab:sys_posix1_general}.
 \begin{table}[htb]
   \centering
   \footnotesize
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|r|l|}
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
-    \macro{\_POSIX\_LINK\_MAX}   &8  & numero massimo di link a un file\\
-    \macro{\_POSIX\_MAX\_CANON}&255  & spazio disponibile nella coda di input
-                                       canonica del terminale\\
-    \macro{\_POSIX\_MAX\_INPUT}&255  & spazio disponibile nella coda di input 
-                                       del terminale\\
+    \macro{\_POSIX\_LINK\_MAX}   &8  & numero massimo di link a un file.\\
     \macro{\_POSIX\_NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
     \macro{\_POSIX\_NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
-    \macro{\_POSIX\_PATH\_MAX}& 256  & lunghezza in byte di pathname.\\
+    \macro{\_POSIX\_PATH\_MAX}& 256  & lunghezza in byte di un pathname.\\
     \macro{\_POSIX\_PIPE\_BUF}& 512  & byte scrivibili atomicamente in una
     \macro{\_POSIX\_PIPE\_BUF}& 512  & byte scrivibili atomicamente in una
-                                       pipe\\
+                                       pipe.\\
+    \macro{\_POSIX\_MAX\_CANON}&255  & dimensione di una riga di
+                                       terminale in modo canonico.\\
+    \macro{\_POSIX\_MAX\_INPUT}&255  & spazio disponibile nella coda di input 
+                                       del terminale.\\
 %    \macro{\_POSIX\_MQ\_OPEN\_MAX}&  8& \\
 %    \macro{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\
 %    \macro{\_POSIX\_FD\_SETSIZE}& 16 & \\
 %    \macro{\_POSIX\_MQ\_OPEN\_MAX}&  8& \\
 %    \macro{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\
 %    \macro{\_POSIX\_FD\_SETSIZE}& 16 & \\
@@ -487,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
@@ -504,7 +505,7 @@ indicano rispettivamente:
 \item il nome del domino.
 \end{itemize*}
 l'ultima informazione è stata aggiunta di recente e non è prevista dallo
 \item il nome del domino.
 \end{itemize*}
 l'ultima informazione è stata aggiunta di recente e non è prevista dallo
-standard POSIX, essa è accessibile, come mostrato in \figref{fig:sig_stack_t},
+standard POSIX, essa è accessibile, come mostrato in \figref{fig:sys_utsname},
 solo definendo \macro{\_GNU\_SOURCE}.
 
 \begin{figure}[!htb]
 solo definendo \macro{\_GNU\_SOURCE}.
 
 \begin{figure}[!htb]
@@ -534,11 +535,11 @@ In generale si tenga presente che le dimensioni delle stringe di una
 \macro{\_UTSNAME\_LENGTH} per i campi standard e
 \macro{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio;
 altri sistemi usano nomi diversi come \macro{SYS\_NMLN} o \macro{\_SYS\_NMLN}
 \macro{\_UTSNAME\_LENGTH} per i campi standard e
 \macro{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio;
 altri sistemi usano nomi diversi come \macro{SYS\_NMLN} o \macro{\_SYS\_NMLN}
-o \macro{UTSLEN} che possono avere valori diversi. Nel caso di Linux
+o \macro{UTSLEN} che possono avere valori diversi.\footnote{Nel caso di Linux
 \func{uname} corrisponde in realtà a 3 system call diverse, le prime due usano
 rispettivamente delle lunghezze delle stringhe di 9 e 65 byte; la terza usa
 anch'essa 65 byte, ma restituisce anche l'ultimo campo, \var{domainname}, con
 \func{uname} corrisponde in realtà a 3 system call diverse, le prime due usano
 rispettivamente delle lunghezze delle stringhe di 9 e 65 byte; la terza usa
 anch'essa 65 byte, ma restituisce anche l'ultimo campo, \var{domainname}, con
-una lunghezza di 257 byte.
+una lunghezza di 257 byte.}
 
 
 \section{Opzioni e configurazione del sistema}
 
 
 \section{Opzioni e configurazione del sistema}
@@ -555,11 +556,9 @@ da uno standard, ogni sistema pu
 configurazione, che, non essendo mai fissi e variando da sistema a sistema,
 non sono stati inclusi nella standardizzazione della sezione precedente. Per
 questi occorre, oltre al meccanismo di impostazione, pure un meccanismo di
 configurazione, che, non essendo mai fissi e variando da sistema a sistema,
 non sono stati inclusi nella standardizzazione della sezione precedente. Per
 questi occorre, oltre al meccanismo di impostazione, pure un meccanismo di
-lettura.
-
-Affronteremo questi argomenti in questa sezione, insieme alle funzioni che si
-usano per il controllo di altre caratteristiche generali del sistema, come
-quelle per la gestione dei filesystem e di utenti e gruppi.
+lettura.  Affronteremo questi argomenti in questa sezione, insieme alle
+funzioni che si usano per il controllo di altre caratteristiche generali del
+sistema, come quelle per la gestione dei filesystem e di utenti e gruppi.
 
 
 \subsection{La funzione \func{sysctl} ed il filesystem \file{/proc}}
 
 
 \subsection{La funzione \func{sysctl} ed il filesystem \file{/proc}}
@@ -570,23 +569,21 @@ sistema 
 l'implementazione è specifica di Linux; il suo prototipo è:
 \begin{functions}
 \headdecl{unistd.h}
 l'implementazione è specifica di Linux; il suo prototipo è:
 \begin{functions}
 \headdecl{unistd.h}
-\headdecl{linux/unistd.h}
-\headdecl{linux/sysctl.h}
 \funcdecl{int sysctl(int *name, int nlen, void *oldval, size\_t *oldlenp, void
   *newval, size\_t newlen)}
 
 Legge o scrive uno dei parametri di sistema.
 
 \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
 \funcdecl{int sysctl(int *name, int nlen, void *oldval, size\_t *oldlenp, void
   *newval, size\_t newlen)}
 
 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}
   \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
-    di accesso al parametro nella modalità scelta.
+  \item[\macro{EPERM}] non si ha il permesso di accedere ad uno dei componenti
+    nel cammino specificato per il parametro, o di accedere al parametro nella
+    modalità scelta.
   \item[\macro{ENOTDIR}] non esiste un parametro corrispondente al nome
     \param{name}.
   \item[\macro{ENOTDIR}] non esiste un parametro corrispondente al nome
     \param{name}.
-  \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
-    \param{oldval} è non nullo. 
+%  \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
+%    \param{oldval} è non nullo. 
   \item[\macro{EINVAL}] o si è specificato un valore non valido per il
     parametro che si vuole impostare o lo spazio provvisto per il ritorno di un
     valore non è delle giuste dimensioni.
   \item[\macro{EINVAL}] o si è specificato un valore non valido per il
     parametro che si vuole impostare o lo spazio provvisto per il ritorno di un
     valore non è delle giuste dimensioni.
@@ -594,14 +591,19 @@ Legge o scrive uno dei parametri di sistema.
     quando non si è specificato sufficiente spazio per ricevere il valore di un
     parametro.
   \end{errlist}
     quando non si è specificato sufficiente spazio per ricevere il valore di un
     parametro.
   \end{errlist}
+  ed inoltre \macro{EFAULT}.
 }
 \end{functions}
 
 I parametri a cui la funzione permettere di accedere sono organizzati in
 }
 \end{functions}
 
 I parametri a cui la funzione permettere di accedere sono organizzati in
-maniera gerarchica all'interno un albero; per accedere ad uno di essi occorre
-specificare un cammino attraverso i vari nodi dell'albero, in maniera analoga
-a come avviene per la risoluzione di un pathname (da cui l'uso alternativo del
-filesystem \file{/proc}, che vedremo dopo).
+maniera gerarchica all'interno un albero;\footnote{si tenga presente che
+  includendo solo \file{unistd.h}, saranno definiti solo i parametri generici;
+  dato che ce ne sono molti specifici dell'implementazione, nel caso di Linux
+  occorrerà includere anche i file \file{linux/unistd.h} e
+  \file{linux/sysctl.h}.} per accedere ad uno di essi occorre specificare un
+cammino attraverso i vari nodi dell'albero, in maniera analoga a come avviene
+per la risoluzione di un pathname (da cui l'uso alternativo del filesystem
+\file{/proc}, che vedremo dopo).
 
 Ciascun nodo dell'albero è identificato da un valore intero, ed il cammino che
 arriva ad identificare un parametro specifico è passato alla funzione
 
 Ciascun nodo dell'albero è identificato da un valore intero, ed il cammino che
 arriva ad identificare un parametro specifico è passato alla funzione
@@ -753,7 +755,7 @@ significativi sono un \textit{magic number}\footnote{cio
   riservata al \textit{magic number}.} mentre i 16 meno significativi sono
 usati per specificare le opzioni; essi sono usati come maschera binaria e
 vanno impostati con un OR aritmetico della costante \macro{MS\_MGC\_VAL} con i
   riservata al \textit{magic number}.} mentre i 16 meno significativi sono
 usati per specificare le opzioni; essi sono usati come maschera binaria e
 vanno impostati con un OR aritmetico della costante \macro{MS\_MGC\_VAL} con i
-valori riportati in \ntab.
+valori riportati in \tabref{tab:sys_mount_flags}.
 
 \begin{table}[htb]
   \footnotesize
 
 \begin{table}[htb]
   \footnotesize
@@ -807,7 +809,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
@@ -862,7 +864,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.
@@ -876,8 +878,8 @@ Queste funzioni permettono di ottenere una serie di informazioni generali
 riguardo al filesystem su cui si trova il file specificato; queste vengono
 restituite una struttura \param{buf} di tipo \type{statfs} definita come in
 \ref{fig:sys_statfs}, ed i campi che sono indefiniti per il filesystem in
 riguardo al filesystem su cui si trova il file specificato; queste vengono
 restituite una struttura \param{buf} di tipo \type{statfs} definita come in
 \ref{fig:sys_statfs}, ed i campi che sono indefiniti per il filesystem in
-esame sono impostati a zero.  I valori del campo \var{f\_type} sono definiti per
-i vari filesystem nei relativi file di header dei sorgenti del kernel da
+esame sono impostati a zero.  I valori del campo \var{f\_type} sono definiti
+per i vari filesystem nei relativi file di header dei sorgenti del kernel da
 costanti del tipo \macro{XXX\_SUPER\_MAGIC}, dove \macro{XXX} in genere è il
 nome del filesystem stesso.
 
 costanti del tipo \macro{XXX\_SUPER\_MAGIC}, dove \macro{XXX} in genere è il
 nome del filesystem stesso.
 
@@ -1122,7 +1124,8 @@ capacit
 completa. Per questo motivo l'uso di queste funzioni è deprecato in favore
 dell'uso di PAM, ci limiteremo pertanto ad elencarle in
 \tabref{tab:sys_passwd_func}, rimandando chi fosse interessato alle rispettive
 completa. Per questo motivo l'uso di queste funzioni è deprecato in favore
 dell'uso di PAM, ci limiteremo pertanto ad elencarle in
 \tabref{tab:sys_passwd_func}, rimandando chi fosse interessato alle rispettive
-man page e al manuale delle \acr{glibc} per i dettagli del loro funzionamento.
+pagine di manuale e al manuale delle \acr{glibc} per i dettagli del loro
+funzionamento.
 
 
 
 
 
 
@@ -1472,10 +1475,10 @@ struct rlimit {
 \end{figure}
 
 In genere il superamento di un limite comporta o l'emissione di un segnale o
 \end{figure}
 
 In genere il superamento di un limite comporta o l'emissione di un segnale o
-il fallimento della system call che lo ha provocato; per far leggere o impostare
-i limiti di utilizzo delle risorse da parte di un processo le \acr{glibc}
-prevedono due funzioni, \func{getrlimit} e \func{setrlimit}, i cui prototipi
-sono:
+il fallimento della system call che lo ha provocato; per far leggere o
+impostare i limiti di utilizzo delle risorse da parte di un processo le
+\acr{glibc} prevedono due funzioni, \func{getrlimit} e \func{setrlimit}, i cui
+prototipi sono:
 \begin{functions}
   \headdecl{sys/time.h} 
   \headdecl{sys/resource.h} 
 \begin{functions}
   \headdecl{sys/time.h} 
   \headdecl{sys/resource.h} 
@@ -1490,7 +1493,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 +1871,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 +2375,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;
@@ -2388,7 +2391,7 @@ programma e che 
 \func{strerror}; per questo motivo non è rientrante e nel caso si usino i
 thread è provvista\footnote{questa funzione è la versione prevista dalle
   \acr{glibc}, ed effettivamente definita in \file{string.h}, ne esiste una
 \func{strerror}; per questo motivo non è rientrante e nel caso si usino i
 thread è provvista\footnote{questa funzione è la versione prevista dalle
   \acr{glibc}, ed effettivamente definita in \file{string.h}, ne esiste una
-  analoga nello standard SUSv3 (quella riportata dalla man page), che
+  analoga nello standard SUSv3 (quella riportata dalla pagina di manuale), che
   restituisce \code{int} al posto di \code{char *}, e che tronca la stringa
   restituita a \param{size}.} una versione apposita:
 \begin{prototype}{string.h}
   restituisce \code{int} al posto di \code{char *}, e che tronca la stringa
   restituita a \param{size}.} una versione apposita:
 \begin{prototype}{string.h}