quelle per la gestione dei tempi e degli errori.
+
\section{La lettura delle caratteristiche del sistema}
\label{sec:sys_characteristics}
altre macro (che iniziano sempre con \code{\_POSIX\_}) che definiscono i
valori minimi le stesse caratteristiche devono avere, perché una
implementazione possa dichiararsi conforme allo standard; detti valori sono
-riportati in \tabref{tab:sys_posix1_base}.
+riportati in \tabref{tab:sys_posix1_general}.
\begin{table}[htb]
\centering
\label{tab:sys_posix1_general}
\end{table}
-In genere questi valori non servono a molto, la loro unica utilità è quella
-di indicare un limite superiore che assicura la portabilità senza necessità di
-ulteriori controlli. Tuttavia molti di essi sono troppo ristretti, ed
-ampiamente superati in tutti i sistemi POSIX in uso oggigiorno. Per questo è
-sempre meglio usare i valori provvisti da \func{sysconf}.
+In genere questi valori non servono a molto, la loro unica utilità è quella di
+indicare un limite superiore che assicura la portabilità senza necessità di
+ulteriori controlli. Tuttavia molti di essi sono ampiamente superati in tutti
+i sistemi POSIX in uso oggigiorno. Per questo è sempre meglio utilizzare i
+valori ottenuti da \func{sysconf}.
\begin{table}[htb]
\centering
\label{tab:sys_posix1_other}
\end{table}
-Oltre ai precedenti valori (e a quelli elencati in
+Oltre ai precedenti valori (e a quelli relativi ai file elencati in
\tabref{tab:sys_posix1_file}), che devono essere obbligatoriamente definiti,
-lo standard POSIX.1 ne prevede parecchi altri; in Linux la lista completa si
-può ricavare dall'header file \file{bits/posix1\_lim.h} (da non usare mai
-direttamente, è incluso automaticamente all'interno di \file{limits.h}); di
-questi vale la pena menzionare quelli di uso più comune, riportati in
+lo standard POSIX.1 ne prevede parecchi altri. La lista completa si trova
+dall'header file \file{bits/posix1\_lim.h} (da non usare mai direttamente, è
+incluso automaticamente all'interno di \file{limits.h}); di questi vale la
+pena menzionare quelli di uso più comune, riportati in
\tabref{tab:sys_posix1_other}, che permettono di ricavare alcune
caratteristiche del sistema (come il supporto del \textit{job control} o dei
\textit{saved id}).
\subsection{La funzione \func{uname}}
\label{sec:sys_uname}
-Una altra funzione che si può utilizzare per raccogliere informazioni riguardo
-al sistema ed al computer su cui esso sta girando è \func{uname}, il suo
-prototipo è:
+Una altra funzione che si può utilizzare per raccogliere informazioni sia
+riguardo al sistema che al computer su cui esso sta girando è \func{uname}, il
+suo prototipo è:
\begin{prototype}{sys/utsname.h}{int uname(struct utsname *info)}
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 settata a \macro{EFAULT}.}
\end{prototype}
-\noindent la struttura è anch'essa definita in \file{sys/utsname.h} come:
+
+La funzione, che viene usata dal comando \cmd{umane}, restituisce le
+informazioni richieste nella struttura \param{info}, anche questa struttura è
+definita in \file{sys/utsname.h} come:
\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
struct utsname {
char sysname[_UTSNAME_LENGTH];
#endif
};
\end{lstlisting}
-ed i suoi menbri indicano rispettivamente:
+e le informazioni memorizzate nei suoi membri indicano rispettivamente:
\begin{itemize*}
\item il nome del systema operativo;
\item il nome della release del kernel;
\item il nome della versione del kernel;
\item il tipo di macchina in uso;
\item il nome della stazione;
-\item il nome del domino (è una estensione recente).
+\item il nome del domino.
\end{itemize*}
-
+(l'ultima informazione è stata aggiunta di recente e non è prevista dallo
+standard POSIX).
\section{Opzioni e configurazione del sistema}
\label{sec:sys_config}
-In questa sezione prenderemo in esame le funzioni per leggere e settare i vari
-parametri di configurazione del sistema.
+Come abbiamo accennato nella sezione precedente, non tutti i limiti che
+caratterizzano il sistema sono fissi, o perlomeno non lo sono in tutte le
+implementazioni. Finora abbiamo visto come si può fare per leggerli, ci manca
+di esaminare il meccanismo che permette, quando questi possono variare durante
+l'esecuzione del sistema, di modificarli.
+
+Oltre ai precedenti poi ci sono anche tutta una serie di parametri di
+configurazione, che non essendo mai fissi non sono stati inclusi nella
+standardizzazione della sezione precedente, e per i quali occorre, oltre al
+meccanismo di settaggio, pure un meccanismo di lettura.
+Affronteremo questi argomenti in questa sezione, insieme alle funzioni che si
+usano per la gestione ed il controllo dei filesystem.
\subsection{La funzione \func{sysctl}}
\label{sec:sys_sysctl}