Finita fork, inizio terminazione e wait
[gapil.git] / intro.tex
index 043bf47cc7938aefce50c242ca50782e319f90c6..634c3cbc1e40d77171a2a80fc6ae05344e14f5c3 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -353,9 +353,9 @@ altre al suo interno che falliscono, modificando cos
 
 Pertanto un valore non nullo di \var{errno} non è sintomo di errore (potrebbe
 essere il risultato di un errore precedente) e non lo si può usare per
-determinare \textsl{quando} una chiamata a funzione è fallita.  La procedura
-da seguire è sempre quella di controllare \var{errno} immediatamente dopo aver
-verificato il fallimento della funzione dal suo codice di ritorno.
+determinare quando o se una chiamata a funzione è fallita.  La procedura da
+seguire è sempre quella di controllare \var{errno} immediatamente dopo aver
+verificato il fallimento della funzione attraverso il suo codice di ritorno.
 
 
 \subsection{Le funzioni \func{strerror} e \func{perror}}
@@ -372,24 +372,23 @@ prima funzione che si pu
 \end{prototype}
 
 In generale \func{strerror} viene usata passando \var{errno} come parametro;
-nel caso si specifichi un codice sbagliato verrà restituita un messaggio di
-errore sconosciuto.
-
-Il problema con \func{strerror} è che la funzione utilizza una stringa statica
-che non deve essere modificata dal programma e che è utilizzabile solo fino ad
-una chiamata successiva a \func{strerror}; nel caso si usino i thread è
+nel caso si specifichi un codice sbagliato verrà restituito un messaggio di
+errore sconosciuto. La funzione utilizza una stringa statica che non deve
+essere modificata dal programma e che è utilizzabile solo fino ad una chiamata
+successiva a \func{strerror}; nel caso si usino i thread è
 provvista\footnote{questa funzione è una estensione GNU, non fa parte dello
   standard POSIX} una versione apposita:
 \begin{prototype}{string.h}
-{char * strerror_r(int errnum, char * buff, size\_t size)} 
+{char * strerror\_r(int errnum, char * buff, size\_t size)} 
   La funzione è analoga a \func{strerror} ma ritorna il messaggio in un buffer
   specificato da \var{buff} di lunghezza massima (compreso il terminatore)
   \var{size}.
 \end{prototype}
 che utilizza un buffer che il singolo thread deve allocare, per evitare i
 problemi connessi alla condivisione del buffer statico. Infine, per completare
-la caratterizzazione dell'errore, si può usare anche la variabile globale
-\var{program_invocation_short_name} che riporta il nome del programma
+la caratterizzazione dell'errore, si può usare anche la variabile
+globale\footnote{anche questa è una estensione GNU}
+\var{program\_invocation\_short\_name} che riporta il nome del programma
 attualmente in esecuzione.
 
 Una seconda funzione usata per riportare i codici di errore in maniera
@@ -412,11 +411,19 @@ dichiarate in \file{errno.h}:
    int sys_nerr;
 \end{verbatim}
 la prima contiene i puntatori alle stringhe di errore indicizzati da
-\var{errno}; la seconda esprime il valore più alto della lista. 
+\var{errno}; la seconda esprime il valore più alto per un codice di errore,
+l'utilizzo di questa stringa è sostanzialmente equivalente a quello di
+\func{strerror}.
+
+
 
 
-Il codice del programma \cmd{errcode} è riportato in \nfig, le sezioni che
-illustrano l'utilizzo delle due funzioni suddette s
+In \nfig\ si sono riportate le sezioni attinenti del codice del programma
+\cmd{errcode}, che può essere usato per stampare i messaggi di errore e le
+costanti usate per identificare i singoli errori; il sorgente completo del
+programma è allegato nel file \file{ErrCode.c} e contiene pure la gestione
+delle opzioni e tutte le definizioni necessarie ad associare il valore
+numerico alla costante simbolica. In particolare si è riportata 
 
 \begin{figure}[!htb]
   \footnotesize