Aggiunte varie.
authorSimone Piccardi <piccardi@gnulinux.it>
Wed, 2 Jan 2002 22:04:46 +0000 (22:04 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Wed, 2 Jan 2002 22:04:46 +0000 (22:04 +0000)
filestd.tex
gapil.tex
prochand.tex
sources/Makefile
system.tex

index df0f1628195187e8754a25e931b3a1a543c591d6..c51220daac6bde26ed2437f1e8bb2f3f2740a492 100644 (file)
@@ -1349,8 +1349,10 @@ puntatore allo stream; questo pu
 \end{functions}
 \noindent che permettono di ottenere questa informazione.
 
 \end{functions}
 \noindent che permettono di ottenere questa informazione.
 
-Altre due funzioni, \func{\_\_freading} e \func{\_\_fwriting} servono ad un
-uso ancora più specialistico, il loro prototipo è: 
+La conoscenza dell'ultima operazione effettuata su uno stream aperto è utile
+in quanto permette di trarre conclusioni sullo stato del buffer e del suo
+contenuto. Altre due funzioni, \func{\_\_freading} e \func{\_\_fwriting}
+servono a tale scopo, il loro prototipo è:
 \begin{functions}
   \headdecl{stdio\_ext.h}
   \funcdecl{int \_\_freading(FILE *stream)}
 \begin{functions}
   \headdecl{stdio\_ext.h}
   \funcdecl{int \_\_freading(FILE *stream)}
@@ -1362,16 +1364,12 @@ uso ancora pi
   scrittura o se l'ultima operazione è stata di scrittura.
 \end{functions}
 
   scrittura o se l'ultima operazione è stata di scrittura.
 \end{functions}
 
-Le due funzioni hanno lo scopo di determinare di che tipo è stata l'ultima
+Le due funzioni permettono di determinare di che tipo è stata l'ultima
 operazione eseguita su uno stream aperto in lettura/scrittura; ovviamente se
 uno stream è aperto in sola lettura (o sola scrittura) la modalità dell'ultima
 operazione è sempre determinata; l'unica ambiguità è quando non sono state
 operazione eseguita su uno stream aperto in lettura/scrittura; ovviamente se
 uno stream è aperto in sola lettura (o sola scrittura) la modalità dell'ultima
 operazione è sempre determinata; l'unica ambiguità è quando non sono state
-ancora eseguite operazioni, in questo caso le funzioni rispondono come se
-una operazione ci fosse comunque stata.
-
-La conoscenza dell'ultima operazione effettuata su uno stream aperto in
-lettura/scrittura è utile in quanto permette di trarre conclusioni sullo stato
-del buffer e del suo contenuto.
+ancora eseguite operazioni, in questo caso le funzioni rispondono come se una
+operazione ci fosse comunque stata.
 
 
 \subsection{Il controllo della bufferizzazione}
 
 
 \subsection{Il controllo della bufferizzazione}
index 053bc85d3eb76a8e4fa4f6554561c2f577405ab8..16e9a8cb8cb2eac2dd6a3c6b67c12178b9b9d5df 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -59,7 +59,7 @@
 
 \begin{quote}
   
 
 \begin{quote}
   
-  Copyright \copyright\ 2000-2001 Simone Piccardi.  Permission is granted to
+  Copyright \copyright\ 2000-2002 Simone Piccardi.  Permission is granted to
   copy, distribute and/or modify this document under the terms of the GNU Free
   Documentation License, Version 1.1 or any later version published by the
   Free Software Foundation; with the Invariant Sections being ``Prefazione'',
   copy, distribute and/or modify this document under the terms of the GNU Free
   Documentation License, Version 1.1 or any later version published by the
   Free Software Foundation; with the Invariant Sections being ``Prefazione'',
index 7eb71cccb4d43137298afd9693f589005d28eb00..da691436fc01790c4fb7a357c19fcd9d68bcfd71 100644 (file)
@@ -109,9 +109,10 @@ Dato che tutti i processi attivi nel sistema sono comunque generati da
   kernel, (come \cmd{keventd}, \cmd{kswapd}, etc.)} si possono classificare i
 processi con la relazione padre/figlio in una organizzazione gerarchica ad
 albero, in maniera analoga a come i file sono organizzati in un albero di
   kernel, (come \cmd{keventd}, \cmd{kswapd}, etc.)} si possono classificare i
 processi con la relazione padre/figlio in una organizzazione gerarchica ad
 albero, in maniera analoga a come i file sono organizzati in un albero di
-directory (si veda \secref{sec:file_file_struct}); in \curfig\ si è mostrato il
-risultato del comando \cmd{pstree} che permette di mostrare questa struttura,
-alla cui base c'è \cmd{init} che è progenitore di tutti gli altri processi.
+directory (si veda \secref{sec:file_organization}); in \curfig\ si è mostrato
+il risultato del comando \cmd{pstree} che permette di mostrare questa
+struttura, alla cui base c'è \cmd{init} che è progenitore di tutti gli altri
+processi.
 
 
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
 
 
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
@@ -584,12 +585,10 @@ comune dopo l'esecuzione di una \func{fork} 
 \item gli identificatori per il controllo di accesso: il \textit{real user
     id}, il \textit{real group id}, l'\textit{effective user id},
   l'\textit{effective group id} ed i \textit{supplementary group id} (vedi
 \item gli identificatori per il controllo di accesso: il \textit{real user
     id}, il \textit{real group id}, l'\textit{effective user id},
   l'\textit{effective group id} ed i \textit{supplementary group id} (vedi
-  \secref{sec:proc_user_group}).
+  \secref{sec:proc_access_id}).
 \item gli identificatori per il controllo di sessione: il \textit{process
     group id} e il \textit{session id} ed il terminale di controllo (vedi
   \secref{sec:sess_xxx} e \secref{sec:sess_xxx}).
 \item gli identificatori per il controllo di sessione: il \textit{process
     group id} e il \textit{session id} ed il terminale di controllo (vedi
   \secref{sec:sess_xxx} e \secref{sec:sess_xxx}).
-\item gli identificatori per il controllo di accesso (vedi
-  \secref{sec:proc_user_group}).
 \item la directory di lavoro e la directory radice (vedi
   \secref{sec:file_work_dir} e \secref{sec:file_chroot}).
 \item la maschera dei permessi di creazione (vedi \secref{sec:file_umask}).
 \item la directory di lavoro e la directory radice (vedi
   \secref{sec:file_work_dir} e \secref{sec:file_chroot}).
 \item la maschera dei permessi di creazione (vedi \secref{sec:file_umask}).
@@ -1183,8 +1182,8 @@ la lista completa 
 \item il \textit{process id} (\acr{pid}) ed il \textit{parent process id}
   (\acr{ppid}).
 \item il \textit{real user id} ed il \textit{real group id} (vedi
 \item il \textit{process id} (\acr{pid}) ed il \textit{parent process id}
   (\acr{ppid}).
 \item il \textit{real user id} ed il \textit{real group id} (vedi
-  \secref{sec:proc_user_group}).
-\item i \textit{supplementary group id} (vedi \secref{sec:proc_user_group}).
+  \secref{sec:proc_access_id}).
+\item i \textit{supplementary group id} (vedi \secref{sec:proc_access_id}).
 \item il \textit{session id} ed il \textit{process group id} (vedi
   \secref{sec:sess_xxx}).
 \item il terminale di controllo (vedi \secref{sec:sess_xxx}).
 \item il \textit{session id} ed il \textit{process group id} (vedi
   \secref{sec:sess_xxx}).
 \item il terminale di controllo (vedi \secref{sec:sess_xxx}).
@@ -1261,8 +1260,8 @@ nuovi processi, e le varie funzioni per la loro manipolazione diretta e tutte
 le problematiche connesse ad una gestione accorta dei privilegi.
 
 
 le problematiche connesse ad una gestione accorta dei privilegi.
 
 
-\subsection{Utente e gruppo di un processo}
-\label{sec:proc_user_group}
+\subsection{Gli identificatori del controllo di accesso}
+\label{sec:proc_access_id}
 
 Come accennato in \secref{sec:intro_multiuser} il modello base\footnote{in
   realtà già esistono estensioni di questo modello base, che lo rendono più
 
 Come accennato in \secref{sec:intro_multiuser} il modello base\footnote{in
   realtà già esistono estensioni di questo modello base, che lo rendono più
@@ -1424,7 +1423,7 @@ di utente e gruppo associati dal kernel ad ogni processo, 
 
 Le due funzioni che vengono usate per cambiare identità (cioè utente e gruppo
 di appartenenza) ad un processo sono rispettivamente \func{setuid} e
 
 Le due funzioni che vengono usate per cambiare identità (cioè utente e gruppo
 di appartenenza) ad un processo sono rispettivamente \func{setuid} e
-\func{setgid}; come accennato in \secref{sec:proc_user_group} in Linux esse
+\func{setgid}; come accennato in \secref{sec:proc_access_id} in Linux esse
 seguono la semantica POSIX che prevede l'esistenza del \textit{saved user id}
 e del \textit{saved group id}; i loro prototipi sono:
 \begin{functions}
 seguono la semantica POSIX che prevede l'esistenza del \textit{saved user id}
 e del \textit{saved group id}; i loro prototipi sono:
 \begin{functions}
@@ -1664,7 +1663,7 @@ specificati come puntatori (
 
 Queste funzioni sono usate per settare gli identificatori usati da Linux per
 il controllo dell'accesso ai file. Come già accennato in
 
 Queste funzioni sono usate per settare gli identificatori usati da Linux per
 il controllo dell'accesso ai file. Come già accennato in
-\secref{sec:proc_user_group} in Linux è definito questo ulteriore gruppo di
+\secref{sec:proc_access_id} in Linux è definito questo ulteriore gruppo di
 identificatori, che di norma sono assolutamente equivalenti agli
 \textit{effective id}, dato che ogni cambiamento di questi ultimi viene
 immediatamente riportato sui \textit{filesystem id}.
 identificatori, che di norma sono assolutamente equivalenti agli
 \textit{effective id}, dato che ogni cambiamento di questi ultimi viene
 immediatamente riportato sui \textit{filesystem id}.
index b13e6698b79ee2f4c3bdb1471aadb881943ad0b4..7ce1d44acdcdb9081d4c9d5a472aa7f9e0aaf0bf 100644 (file)
@@ -12,8 +12,12 @@ FINAL = forktest errcode echo echod daytimed iterdaytimed daytime testfopen \
        testren
 
 
        testren
 
 
+getparam: getparam.c
+       $(CC) $(CFLAGS) $^ -o $@
+
 all: $(FINAL)
 
 all: $(FINAL)
 
+
 testfopen: test_fopen.c
        $(CC) $(CFLAGS) $^ -o $@
 
 testfopen: test_fopen.c
        $(CC) $(CFLAGS) $^ -o $@
 
index b5a6ae14f0bde8edb9d3c5a76d0076b757e0283f..145b1a0d92fccb130c11a8e14f5c1523cd87bd1b 100644 (file)
@@ -18,7 +18,7 @@ e rimuoverli da programma.
 
 
 \subsection{Limiti e parametri di sistema}
 
 
 \subsection{Limiti e parametri di sistema}
-\label{sec:sys_sys_limits}
+\label{sec:sys_limits}
 
 In qualunque sistema sono presenti un gran numero di parametri e costanti il
 cui valore può essere definito dall'architettura dell'hardware,
 
 In qualunque sistema sono presenti un gran numero di parametri e costanti il
 cui valore può essere definito dall'architettura dell'hardware,
@@ -41,69 +41,225 @@ due tipi di funzionalit
 \end{itemize*}
 
 La prima funzionalità si può ottenere includendo gli opportuni header file,
 \end{itemize*}
 
 La prima funzionalità si può ottenere includendo gli opportuni header file,
-mentre per la seconda sono ovviamante necessarie delle funzioni; ci sono molti
-casi però in cui alcuni di questi limiti sono fissi in una implementazione
-mentre possono variare in un altra.
+mentre per la seconda sono ovviamante necessarie delle funzioni; la situazione
+è complicata dal fatto che ci sono molti casi in cui alcuni di questi limiti
+sono fissi in una implementazione mentre possono variare in un altra.
+Quando i limiti sono fissi vengono definiti come macro nel file
+\file{limits.h}, se invece possono variare, il loro valore sarà ottenibile
+tramite la funzione \func{sysconf}. 
+
+Lo standard ANSI C definisce dei limiti che sono tutti fissi e pertanto
+disponibili al momanto della compilazione; un elenco è riportato in
+\tabref{tab:sys_ansic_macro}, come ripreso da \file{limits.h}; come si vede
+per la maggior parte attengono alle dimensioni dei tipi dei dati interi, le
+informazioni analoghe per i dati in virgola mobile sono definite a parte e
+accessibili includendo \file{float.h}. Un'altra costante prevista dallo
+standard (l'unica che può non essere fissa e che pertanto non è definita in
+\file{limits.h}) è \macro{FOPEN\_MAX}, essa deve essere definita in
+\file{stdio.h} ed avere un valore minimo di 8.
+
+\begin{table}[htb]
+  \centering
+  \footnotesize
+  \begin{tabular}[c]{|l|r|l|}
+    \hline
+    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \hline
+    \hline
+    \macro{MB\_LEN\_MAX}&       16  & massima dimensione di un 
+                                      carattere multibyte\\
+    \macro{CHAR\_BIT} &          8  & bit di \type{char}\\
+    \macro{UCHAR\_MAX}&        255  & massimo di \type{unsigned char}\\
+    \macro{SCHAR\_MIN}&       -128  & minimo di \type{signed char}\\
+    \macro{SCHAR\_MAX}&        127  & massimo di \type{signed char}\\
+    \macro{CHAR\_MIN} &\footnotemark& minimo di \type{char}\\
+    \macro{CHAR\_MAX} &\footnotemark& massimo di \type{char}\\
+    \macro{SHRT\_MIN} &     -32768  & minimo di \type{short}\\
+    \macro{SHRT\_MAX} &      32767  & massimo di \type{short}\\
+    \macro{USHRT\_MAX}&      65535  & massimo di \type{unsigned short}\\
+    \macro{INT\_MAX}  & 2147483647  & minimo di \type{int}\\
+    \macro{INT\_MIN}  &-2147483648  & minimo di \type{int}\\
+    \macro{UINT\_MAX} & 4294967295  & massimo di \type{unsigned int}\\
+    \macro{LONG\_MAX} & 2147483647  & massimo di \type{long}\\
+    \macro{LONG\_MIN} &-2147483648  & minimo di \type{long}\\
+    \macro{ULONG\_MAX}& 4294967295  & massimo di \type{unsigned long}\\
+    \hline                
+  \end{tabular}
+  \caption{Macro definite in \file{limits.h} in conformità allo standard
+    ANSI C.}
+  \label{tab:sys_ansic_macro}
+\end{table}
+
+\footnotetext[1]{il valore può essere 0 o \macro{SCHAR\_MIN} a seconda che il
+  sistema usi caratteri con segno o meno.} 
+
+\footnotetext[2]{il valore può essere \macro{UCHAR\_MAX} o \macro{SCHAR\_MAX}
+  a seconda che il sistema usi caratteri con segno o meno.}
+
+A questi valori lo standard ISO C90 ne aggiunge altri tre, relativi al tipo
+\type{long long} introdotto con il nuovo standard, i relativi valori sono in
+\tabref{tab:sys_isoc90_macro}.
+
+\begin{table}[htb]
+  \centering
+  \footnotesize
+  \begin{tabular}[c]{|l|r|l|}
+    \hline
+    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \hline
+    \hline
+    \macro{LLONG\_MAX}& 9223372036854775807&massimo di \type{long long}\\
+    \macro{LLONG\_MIN}&-9223372036854775808&minimo di \type{long long}\\
+    \macro{ULLONG\_MAX}&18446744073709551615&
+    massimo di \type{unsigned long long}\\
+    \hline                
+  \end{tabular}
+  \caption{Macro definite in \file{limits.h} in conformità allo standard
+    ISO C90.}
+  \label{tab:sys_isoc90_macro}
+\end{table}
+
+Lo standard POSIX.1 definisce 33 diversi limiti o costanti, 15 delle quali,
+riportate in \secref{tab:sys_posix1_base}, devono essere sempre dichiarate,
+in quanto definiscono dei valori minimi che qualunque implementazione che sia
+conforme allo standard deve avere; molti di questi valori sono di scarsa
+utilità, essendo troppo ristretti ed ampiamente superati in tutte le
+implementazioni dello standard.
+
+\begin{table}[htb]
+  \centering
+  \footnotesize
+  \begin{tabular}[c]{|l|r|p{8cm}|}
+    \hline
+    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \hline
+    \hline
+    \macro{\_POSIX\_ARG\_MAX} &4096  & dimensione massima degli argomenti
+                                       passati ad una funzione della famiglia
+                                       \func{exec}.\\ 
+    \macro{\_POSIX\_CHILD\_MAX}  &6  & numero massimo di processi contemporanei
+                                       che un utente può eseguire.\\
+    \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\_NGROUPS\_MAX}&0  & numero di gruppi supplementari per
+                                     processo.\\
+    \macro{\_POSIX\_OPEN\_MAX}  &16  & numero massimo di file che un processo
+                                       può mantenere aperti in contemporanea.\\
+    \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\_PIPE\_BUF}& 512  & byte scrivibili atomicamente in una
+                                       pipe\\
+    \macro{\_POSIX\_SSIZE\_MAX}&32767& valore massimo del tipo 
+                                       \type{ssize\_t}.\\
+    \macro{\_POSIX\_STREAM\_MAX}&8   & massimo numero di stream aperti per
+                                       processo in contemporanea.\\
+    \macro{\_POSIX\_TZNAME\_MAX}&    & dimensione massima del nome di una
+                                       \texttt{timezone} (vedi ).\\ 
+    \hline                
+  \end{tabular}
+  \caption{Costanti fisse, definite in \file{limits.h}, richieste
+    obbligatoriamente allo standard POSIX.1.}
+  \label{tab:sys_posix1_base}
+\end{table}
+
+Oltre a questi valori lo standard ne definisce altri a riguardo
+
+
+\begin{table}[htb]
+  \centering
+  \footnotesize
+  \begin{tabular}[c]{|l|r|p{8cm}|}
+    \hline
+    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
+    \hline
+    \hline
+    \macro{\_POSIX\_AIO\_LISTIO\_MAX}&  2& \\
+    \macro{\_POSIX\_AIO\_MAX}&  1& \\
+    \macro{\_POSIX\_DELAYTIMER\_MAX}& 32 & \\
+    \macro{\_POSIX\_MQ\_OPEN\_MAX}&  8& \\
+    \macro{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\
+    \macro{\_POSIX\_FD\_SETSIZE}& 16 & \\
+    \macro{\_POSIX\_NAME\_MAX}&  14& \\
+    \macro{\_POSIX\_PATH\_MAX}& 256& \\
+    \macro{\_POSIX\_PIPE\_BUF}& 512& \\
+    \macro{\_POSIX\_SSIZE\_MAX}& 32767& \\
+    \macro{\_POSIX\_STREAM\_MAX}&8 & \\
+    \macro{\_POSIX\_TZNAME\_MAX}& 6& \\
+    \hline                
+  \end{tabular}
+  \caption{Macro definite in \file{limits.h} in conformità allo standard
+    POSIX.1.}
+  \label{tab:sys_posix1_macro}
+\end{table}
 
 Lo standard ANSI C definisce dei limiti solo sulle dimensioni dei tipi dei
 
 Lo standard ANSI C definisce dei limiti solo sulle dimensioni dei tipi dei
-dati, che sono ovviamente fissi, gli standard POSIX.1 e POSIX.2 ne definiscono
-molti altri attinenti alle caratteristiche del sistema (come il numero massimo
-di figli, la lunghezza di un pathname, ecc.) che possono essere fissi o meno:
-quando sono fissi vengono definiti come macro nel file \file{limits.h}, se
-invece possono variare la macro corrispondente deve essere indefinita, ed il
-loro valore sarà ottenibile tramite la funzione \func{sysconf}, il cui
-prototipo è:
-\begin{prototype}{unistd.h}{long sysconf(int name)}  
+dati, che sono ovviamente fissi, gli standard POSIX.1 e POSIX.2 definiscono
+molti altri limiti attinenti a varie caratteristiche del sistema (come il
+numero massimo di figli, la lunghezza di un pathname, ecc.) che possono essere
+fissi o meno: quando sono fissi vengono definiti come macro nel file
+\file{limits.h}, se invece possono variare, il loro valore sarà ottenibile
+tramite la funzione \func{sysconf}.
+
+
+\subsection{La funzione \func{sysconf}}
+\label{sec:sys_sysconf}
+
+Come accennato in \secref{sec:sys_limits} quando uno dei limiti o delle
+carateristiche del sistema può variare, per evitare di dover ricompilare un
+programma tutte le volte che si cambiano le opzioni con cui è compilato il
+kernel, o alcuni dei parametri modificabili a run time, è necessario ottenerne
+il valore attraverso la funzione \func{sysconf}, il cui prototipo è:
+\begin{prototype}{unistd.h}{long sysconf(int name)}
   Restituisce il valore del parametro di sistema \param{name}.
   
   \bodydesc{La funzione restituisce indietro il valore del parametro
     richiesto, o 1 se si tratta di un'opzione disponibile, 0 se l'opzione non
     è disponibile e -1 in caso di errore (ma \var{errno} non viene settata).}
 \end{prototype}
   Restituisce il valore del parametro di sistema \param{name}.
   
   \bodydesc{La funzione restituisce indietro il valore del parametro
     richiesto, o 1 se si tratta di un'opzione disponibile, 0 se l'opzione non
     è disponibile e -1 in caso di errore (ma \var{errno} non viene settata).}
 \end{prototype}
-\noindent ed i valori possibili disponibili in Linux per \param{name} sono
-definiti in \ntab.
+
+La funzione prende come argomento un intero che specifica quale dei limiti si
+vuole conoscere; uno specchietto contentente tutti quelli disponibili in
+Linux, e la corrispondente macro di \func{limits.h}, è riportato in \ntab.
 
 \begin{table}[htb]
   \centering
   \footnotesize
     \begin{tabular}[c]{|l|l|p{9cm}|}
       \hline
 
 \begin{table}[htb]
   \centering
   \footnotesize
     \begin{tabular}[c]{|l|l|p{9cm}|}
       \hline
-      \textbf{Parametro}&\textbf{macro sostituita} &\textbf{Significato}\\
+      \textbf{Parametro}&\textbf{Macro sostituita} &\textbf{Significato}\\
       \hline
       \hline
       \texttt{\_SC\_ARG\_MAX} &\macro{ARG\_MAX}&
       \hline
       \hline
       \texttt{\_SC\_ARG\_MAX} &\macro{ARG\_MAX}&
-              The  maximum  length of the arguments to the exec()
-              family of functions;  the  corresponding  macro  is
-              . \\
-       \texttt{\_SC\_CHILD\_MAX}&\macro{\_POSIX\_CHILD\_MAX}&
-              The  number  of simultaneous processes per user id,
-              the corresponding macro is .\\
-       \texttt{\_SC\_CLK\_TCK}& \macro{CLK\_TCK} &
-              The number of clock ticks per  second;  the  corre­
-              sponding macro is.\\
-       \texttt{\_SC\_STREAM\_MAX}& \macro{STREAM\_MAX}&
-              The  maximum  number  of streams that a process can
-              have open at any  time.    the corresponding standard C
-              macro is \macro{FOPEN\_MAX}.\\
-       \texttt{\_SC\_TZNAME\_MAX}&\macro{TZNAME\_MAX}&
-              The maximum number of bytes in a timezone name, the
-              corresponding macro is .\\
-       \texttt{\_SC\_OPEN\_MAX}&\macro{\_POSIX\_OPEN\_MAX}&
-              The maximum number of files that a process can have
-              open  at  any  time,  the  corresponding  macro  is
-              .\\
-       \texttt{\_SC\_JOB\_CONTROL}&\macro{\_POSIX\_JOB\_CONTROL}&
-              This indicates whether POSIX - style job control is
-              supported,    the    corresponding     macro     is
-              .\\
-       \texttt{\_SC\_SAVED\_IDS}&\macro{\_POSIX\_SAVED\_IDS}&
-              This  indicates  whether a process has a saved set-
-              user-ID and a saved set-group-ID; the corresponding
-              macro is\\
-       \texttt{\_SC\_VERSION}& nessuna &
-              indicates  the  year and month the POSIX.1 standard
-              was  approved  in  the  format  YYYYMML;the   value
-              199009L indicates the most recent revision, 1990.\\
+      La dimensione massima degli argomenti passati ad una funzione
+      della famiglia \func{exec}.\\
+      \texttt{\_SC\_CHILD\_MAX}&\macro{\_CHILD\_MAX}&
+      Il numero massimo di processi contemporanei che un utente può
+      eseguire.\\
+      \texttt{\_SC\_CLK\_TCK}& \macro{CLK\_TCK} &
+      Il numero di \textit{clock tick} al secondo, cioè la frequenza delle
+      interruzioni del timer di sistema (vedi \secref{sec:proc_priority}).\\
+      \texttt{\_SC\_STREAM\_MAX}& \macro{STREAM\_MAX}&
+      Il massimo numero di stream che un processo può mantenere aperti in
+      contemporanea. Questo liminte previsto anche dallo standard ANSI C, che
+      specifica la macro {FOPEN\_MAX}.\\
+      \texttt{\_SC\_TZNAME\_MAX}&\macro{TZNAME\_MAX}&
+      La dimensione massima di un nome di una \texttt{timezone} (vedi ).\\
+      \texttt{\_SC\_OPEN\_MAX}&\macro{\_OPEN\_MAX}&
+      Il numero massimo di file che un processo può mantenere aperti in
+      contemporanea.\\
+      \texttt{\_SC\_JOB\_CONTROL}&\macro{\_POSIX\_JOB\_CONTROL}&
+      Indica se è supportato il \textit{job conotrol} (vedi
+      \secref{sec:sess_xxx}) 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\_VERSION}& \macro{\_POSIX\_VERSION} &
+      Indica il mese e l'anno di approvazione della revisione dello standard
+      POSIX.1 a cui il sistema fa riferimento, nel formato YYYYMML, la
+      revisione più recente è 199009L, che indica il Settembre 1990.\\
      \hline
     \end{tabular}
   \caption{Parametri del sistema leggibili dalla funzione \func{sysconf}.}
      \hline
     \end{tabular}
   \caption{Parametri del sistema leggibili dalla funzione \func{sysconf}.}
@@ -130,7 +286,7 @@ La funzione \func{pathconf} ...
 
 
 \section{Limitazione ed uso delle risorse}
 
 
 \section{Limitazione ed uso delle risorse}
-\label{sec:sys_limits}
+\label{sec:sys_res_limits}
 
 In questa sezione esamimeremo le funzioni che permettono di esaminare e
 controllare come le varie risorse del sistema (CPU, memoria, ecc.) vengono
 
 In questa sezione esamimeremo le funzioni che permettono di esaminare e
 controllare come le varie risorse del sistema (CPU, memoria, ecc.) vengono