Piccole modifiche
[gapil.git] / prochand.tex
index d2b4391dcdbb637decd39a3e7eeb40a153d5f560..2be5cf1ef10948faba8004c897f5e5f5fa32c284 100644 (file)
@@ -136,7 +136,7 @@ che è progenitore di tutti gli altri processi.\footnote{in realtà questo non 
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
 \itindex{process~table} \textit{process table}. Per ciascun processo viene
 mantenuta una voce in questa tabella, costituita da una struttura
-\struct{task\_struct}, che contiene tutte le informazioni rilevanti per quel
+\kstruct{task\_struct}, che contiene tutte le informazioni rilevanti per quel
 processo. Tutte le strutture usate a questo scopo sono dichiarate
 nell'\textit{header file} \file{linux/sched.h}, ed uno schema semplificato,
 che riporta la struttura delle principali informazioni contenute nella
@@ -208,7 +208,7 @@ riparte dal numero più basso disponibile a partire da un minimo di
   kernel, con il 2.6.x e la nuova interfaccia per i \itindex{thread}
   \textit{thread} anche il meccanismo di allocazione dei \acr{pid} è stato
   modificato ed il valore massimo è impostabile attraverso il file
-  \procfile{/proc/sys/kernel/pid\_max} e di default vale 32768.} che serve a
+  \sysctlfile{kernel/pid\_max} e di default vale 32768.} che serve a
 riservare i \acr{pid} più bassi ai processi eseguiti direttamente dal kernel.
 Per questo motivo, come visto in sez.~\ref{sec:proc_hierarchy}, il processo di
 avvio (\cmd{init}) ha sempre il \acr{pid} uguale a uno.
@@ -697,9 +697,9 @@ di vista di come il sistema gestisce la conclusione dei processi.
 
 Abbiamo visto in sez.~\ref{sec:proc_conclusion} le tre modalità con cui un
 programma viene terminato in maniera normale: la chiamata di \func{exit}, che
-esegue le funzioni registrate per l'uscita e chiude i \textit{file stream} e
-poi esegue \func{\_exit}, il ritorno dalla funzione \func{main} equivalente
-alla chiamata di \func{exit}, e la chiamata diretta a \func{\_exit}, che passa
+esegue le funzioni registrate per l'uscita e chiude gli \textit{stream} e poi
+esegue \func{\_exit}, il ritorno dalla funzione \func{main} equivalente alla
+chiamata di \func{exit}, e la chiamata diretta a \func{\_exit}, che passa
 direttamente alle operazioni di terminazione del processo da parte del kernel.
 
 Ma abbiamo accennato che oltre alla conclusione normale esistono anche delle
@@ -960,10 +960,10 @@ comportamento di \func{wait}\footnote{in effetti il codice
   processo non è uscito e $-1$ per un errore, nel qual caso \var{errno}
   assumerà uno dei valori:
   \begin{errlist}
-  \item[\errcode{EINTR}] non è stata specificata l'opzione \const{WNOHANG} e
-    la funzione è stata interrotta da un segnale.
   \item[\errcode{ECHILD}] il processo specificato da \param{pid} non esiste o
     non è figlio del processo chiamante.
+  \item[\errcode{EINTR}] non è stata specificata l'opzione \const{WNOHANG} e
+    la funzione è stata interrotta da un segnale.
   \item[\errcode{EINVAL}] si è specificato un valore non valido per
     l'argomento \param{options}.
   \end{errlist}}
@@ -1137,38 +1137,43 @@ anomala), uno per indicare se è stato generato un \itindex{core~dump}
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \macro{WIFEXITED(s)}   & Condizione vera (valore non nullo) per un processo
-                             figlio che sia terminato normalmente. \\
-    \macro{WEXITSTATUS(s)} & Restituisce gli otto bit meno significativi dello
-                             stato di uscita del processo (passato attraverso
-                             \func{\_exit}, \func{exit} o come valore di
-                             ritorno di \func{main}); può essere valutata solo
-                             se \val{WIFEXITED} ha restituito un valore non
-                             nullo.\\ 
-    \macro{WIFSIGNALED(s)} & Condizione vera se il processo figlio è terminato
-                             in maniera anomala a causa di un segnale che non
-                             è stato catturato (vedi
-                             sez.~\ref{sec:sig_notification}).\\ 
-    \macro{WTERMSIG(s)}    & Restituisce il numero del segnale che ha causato
-                             la terminazione anomala del processo; può essere
-                             valutata solo se \val{WIFSIGNALED} ha restituito
-                             un valore non nullo.\\ 
-    \macro{WCOREDUMP(s)}   & Vera se il processo terminato ha generato un
-                             file di \itindex{core~dump} \textit{core
-                               dump}; può essere valutata solo se
-                             \val{WIFSIGNALED} ha restituito un valore non
-                             nullo.\footnotemark \\
-    \macro{WIFSTOPPED(s)}  & Vera se il processo che ha causato il ritorno di
-                             \func{waitpid} è bloccato; l'uso è possibile solo
-                             con \func{waitpid} avendo specificato l'opzione
-                             \const{WUNTRACED}.\\
-    \macro{WSTOPSIG(s)}    & Restituisce il numero del segnale che ha bloccato
-                             il processo; può essere valutata solo se
-                             \val{WIFSTOPPED} ha restituito un valore non
-                             nullo. \\ 
-    \macro{WIFCONTINUED(s)}& Vera se il processo che ha causato il ritorno è
-                             stato riavviato da un \signal{SIGCONT}
-                             (disponibile solo a partire dal kernel 2.6.10).\\
+    \macro{WIFEXITED}\texttt{(s)}   & Condizione vera (valore non nullo) per
+                                      un processo figlio che sia terminato
+                                      normalmente. \\ 
+    \macro{WEXITSTATUS}\texttt{(s)} & Restituisce gli otto bit meno
+                                      significativi dello stato di uscita del
+                                      processo (passato attraverso
+                                      \func{\_exit}, \func{exit} o come valore
+                                      di ritorno di \func{main}); può essere
+                                      valutata solo se \val{WIFEXITED} ha
+                                      restituito un valore non nullo.\\ 
+    \macro{WIFSIGNALED}\texttt{(s)} & Condizione vera se il processo figlio è
+                                      terminato in maniera anomala a causa di
+                                      un segnale che non è stato catturato
+                                      (vedi sez.~\ref{sec:sig_notification}).\\ 
+    \macro{WTERMSIG}\texttt{(s)}    & Restituisce il numero del segnale che ha
+                                      causato la terminazione anomala del
+                                      processo; può essere valutata solo se
+                                      \val{WIFSIGNALED} ha restituito un
+                                      valore non nullo.\\
+    \macro{WCOREDUMP}\texttt{(s)}   & Vera se il processo terminato ha
+                                      generato un file di \itindex{core~dump}
+                                      \textit{core dump}; può essere valutata
+                                      solo se \val{WIFSIGNALED} ha restituito
+                                      un valore non nullo.\footnotemark \\
+    \macro{WIFSTOPPED}\texttt{(s)}  & Vera se il processo che ha causato il
+                                      ritorno di \func{waitpid} è bloccato;
+                                      l'uso è possibile solo con
+                                      \func{waitpid} avendo specificato
+                                      l'opzione \const{WUNTRACED}.\\
+    \macro{WSTOPSIG}\texttt{(s)}    & Restituisce il numero del segnale che ha
+                                      bloccato il processo; può essere
+                                      valutata solo se \val{WIFSTOPPED} ha
+                                      restituito un valore non nullo. \\ 
+    \macro{WIFCONTINUED}\texttt{(s)}& Vera se il processo che ha causato il
+                                      ritorno è stato riavviato da un
+                                      \signal{SIGCONT} (disponibile solo a
+                                      partire dal kernel 2.6.10).\\
     \hline
   \end{tabular}
   \caption{Descrizione delle varie macro di preprocessore utilizzabili per 
@@ -1209,10 +1214,10 @@ suo prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
   caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-  \item[\errcode{EINTR}] non è stata specificata l'opzione \const{WNOHANG} e
-    la funzione è stata interrotta da un segnale.
   \item[\errcode{ECHILD}] il processo specificato da \param{pid} non esiste o
     non è figlio del processo chiamante.
+  \item[\errcode{EINTR}] non è stata specificata l'opzione \const{WNOHANG} e
+    la funzione è stata interrotta da un segnale.
   \item[\errcode{EINVAL}] si è specificato un valore non valido per
     l'argomento \param{options}.
   \end{errlist}}
@@ -1386,27 +1391,25 @@ prototipo è:
     eseguibili, o il file è su un filesystem montato con l'opzione
     \cmd{noexec}, o manca  il permesso di attraversamento di una delle
     directory del pathname.
-  \item[\errcode{EPERM}] il file ha i bit \itindex{suid~bit} \acr{suid} o
-    \itindex{sgid~bit} \acr{sgid} e l'utente non è root, ed il processo viene
-    tracciato, oppure il filesystem è montato con l'opzione \cmd{nosuid}.
+  \item[\errcode{EINVAL}] l'eseguibile ELF ha più di un segmento
+    \const{PF\_INTERP}, cioè chiede di essere eseguito da più di un
+    interprete.
+  \item[\errcode{ELIBBAD}] un interprete ELF non è in un formato
+    riconoscibile.
   \item[\errcode{ENOEXEC}] il file è in un formato non eseguibile o non
     riconosciuto come tale, o compilato per un'altra architettura.
   \item[\errcode{ENOENT}] il file o una delle librerie dinamiche o l'interprete
     necessari per eseguirlo non esistono.
+  \item[\errcode{EPERM}] il file ha i bit \itindex{suid~bit} \acr{suid} o
+    \itindex{sgid~bit} \acr{sgid} e l'utente non è root, ed il processo viene
+    tracciato, oppure il filesystem è montato con l'opzione \cmd{nosuid}.
   \item[\errcode{ETXTBSY}] l'eseguibile è aperto in scrittura da uno o più
     processi. 
-  \item[\errcode{EINVAL}] l'eseguibile ELF ha più di un segmento
-    \const{PF\_INTERP}, cioè chiede di essere eseguito da più di un
-    interprete.
-  \item[\errcode{ELIBBAD}] un interprete ELF non è in un formato
-    riconoscibile.
   \item[\errcode{E2BIG}] la lista degli argomenti è troppo grande.
   \end{errlist}
-  ed inoltre \errval{EFAULT}, \errval{ENOMEM},
-  \errval{EIO}, \errval{ENAMETOOLONG}, \errval{ELOOP}, \errval{ENOTDIR},
-  \errval{EISDIR}, \errval{ENFILE}, \errval{EMFILE} nel loro significato
-  generico.
-}
+  ed inoltre \errval{EFAULT}, \errval{EIO}, \errval{EISDIR}, \errval{ELOOP},
+  \errval{EMFILE}, \errval{ENAMETOOLONG}, \errval{ENFILE}, \errval{ENOMEM},
+  \errval{ENOTDIR} nel loro significato generico.  }
 \end{funcproto}
 
 La funzione \func{execve} esegue il programma o lo script indicato dal
@@ -1437,7 +1440,7 @@ argomenti all'esecuzione del nuovo programma. I loro prototipi sono:
 \fdecl{int execvp(const char *file, char *const argv[])}
 \fdesc{Eseguono un programma.} 
 }
-{Le funzioni ritorna solo in caso di errore, restituendo $-1$, i codici di
+{Le funzioni ritornano solo in caso di errore, restituendo $-1$, i codici di
   errore sono gli stessi di \func{execve}.
 }
 \end{funcproto}
@@ -1654,7 +1657,7 @@ Infine nel caso il programma che si vuole eseguire sia uno script e non un
 binario, questo deve essere un file di testo che deve iniziare con una linea
 nella forma:
 \begin{Example}
-\#!/path/to/interpreter [argomenti]
+#!/path/to/interpreter [argomenti]
 \end{Example}
 dove l'interprete indicato deve essere un eseguibile binario e non un altro
 script, che verrà chiamato come se si fosse eseguito il comando
@@ -2219,9 +2222,9 @@ il suo prototipo è:
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
 \item[\errcode{EFAULT}] \param{list} non ha un indirizzo valido.
-\item[\errcode{EPERM}] il processo non ha i privilegi di amministratore.
 \item[\errcode{EINVAL}] il valore di \param{size} è maggiore del valore
     massimo consentito di gruppi supplementari.
+\item[\errcode{EPERM}] il processo non ha i privilegi di amministratore.
 \end{errlist}}
 \end{funcproto}
 
@@ -2243,9 +2246,9 @@ un utente specifico, si può usare \funcd{initgroups} il cui prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-\item[\errcode{EPERM}] il processo non ha i privilegi di amministratore.
 \item[\errcode{ENOMEM}] non c'è memoria sufficiente per allocare lo spazio per
   informazioni dei gruppi.
+\item[\errcode{EPERM}] il processo non ha i privilegi di amministratore.
 \end{errlist}}
 \end{funcproto}
 
@@ -2532,10 +2535,10 @@ funzione \funcd{getpriority}, derivata da BSD; il suo prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-\item[\errcode{ESRCH}] non c'è nessun processo che corrisponda ai valori di
-  \param{which} e \param{who}.
 \item[\errcode{EINVAL}] il valore di \param{which} non è uno di quelli
     elencati in tab.~\ref{tab:proc_getpriority}.
+\item[\errcode{ESRCH}] non c'è nessun processo che corrisponda ai valori di
+  \param{which} e \param{who}.
 \end{errlist}}
 \end{funcproto}
 
@@ -2594,14 +2597,14 @@ impostare la priorità di uno o più processi; il suo prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
+\item[\errcode{EACCES}] si è richiesto un aumento di priorità senza avere
+  sufficienti privilegi.
+\item[\errcode{EINVAL}] il valore di \param{which} non è uno di quelli
+  elencati in tab.~\ref{tab:proc_getpriority}.
+\item[\errcode{EPERM}] un processo senza i privilegi di amministratore ha
+  cercato di modificare la priorità di un processo di un altro utente.
 \item[\errcode{ESRCH}] non c'è nessun processo che corrisponda ai valori di
   \param{which} e \param{who}.
-\item[\errcode{EINVAL}] il valore di \param{which} non è uno di quelli
-    elencati in tab.~\ref{tab:proc_getpriority}.
-  \item[\errcode{EACCES}] si è richiesto un aumento di priorità senza avere
-    sufficienti privilegi.
-  \item[\errcode{EPERM}] un processo senza i privilegi di amministratore ha
-    cercato di modificare la priorità di un processo di un altro utente.
 \end{errlist}}
 \end{funcproto}
 
@@ -2734,11 +2737,11 @@ ordinarie o viceversa, che di specificare, in caso di politiche
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-    \item[\errcode{ESRCH}] il processo \param{pid} non esiste.
     \item[\errcode{EINVAL}] il valore di \param{policy} non esiste o il
       relativo valore di \param{p} non è valido per la politica scelta.
     \item[\errcode{EPERM}] il processo non ha i privilegi per attivare la
       politica richiesta.
+    \item[\errcode{ESRCH}] il processo \param{pid} non esiste.
  \end{errlist}}
 \end{funcproto}
 
@@ -2862,7 +2865,7 @@ stato \textit{runnable} viene sempre inserito in coda alla lista. Se la
 politica scelta è \const{SCHED\_FIFO} quando il processo viene eseguito viene
 automaticamente rimesso in coda alla lista, e la sua esecuzione continua
 fintanto che non viene bloccato da una richiesta di I/O, o non rilascia
-volontariamente la CPU (in tal caso, tornando nello stato \textbf{Runnable}
+volontariamente la CPU (in tal caso, tornando nello stato \textit{runnable}
 sarà reinserito in coda alla lista); l'esecuzione viene ripresa subito solo
 nel caso che esso sia stato interrotto da un processo a priorità più alta.
 
@@ -2901,14 +2904,14 @@ prototipi sono:
 \fdecl{int sched\_getparam(pid\_t pid, struct sched\_param *param)}
 \fdesc{Legge la priorità statica di un processo.} 
 }
-{La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
+{Le funzioni ritornano $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \item[\errcode{EINVAL}] il valore di \param{param} non ha senso per la
   politica usata dal processo.
 \item[\errcode{EPERM}] non si hanno privilegi sufficienti per eseguire
   l'operazione.
+\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \end{errlist}}
 \end{funcproto}
 
@@ -2940,9 +2943,9 @@ prototipo è:
 {La funzione ritorna la politica di \textit{scheduling}  in caso di successo e
   $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-    \item[\errcode{ESRCH}] il processo \param{pid} non esiste.
     \item[\errcode{EPERM}] non si hanno privilegi sufficienti per eseguire
       l'operazione.
+    \item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \end{errlist}}
 \end{funcproto}
 
@@ -2965,10 +2968,10 @@ il suo prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \item[\errcode{EINVAL}] l'argomento \param{pid} non è valido. 
 \item[\errcode{ENOSYS}] la \textit{system call} non è presente (solo per
   kernel arcaici).
+\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \end{errlist}
 ed inoltre anche \errval{EFAULT} nel suo significato generico.}
 \end{funcproto}
@@ -3020,7 +3023,7 @@ l'introduzione del \textit{Completely Fair Scheduler} questo comportamento è
 cambiato ed un processo che chiama la funzione viene inserito nella lista dei
 processi inattivo, con un tempo molto maggiore.\footnote{è comunque possibile
   ripristinare un comportamento analogo al precedente scrivendo il valore 1
-  nel file \texttt{/proc/sys/kernel/sched\_compat\_yield}.}
+  nel file \sysctlfile{kernel/sched\_compat\_yield}.}
 
 L'uso delle funzione nella programmazione ordinaria può essere utile e
 migliorare le prestazioni generali del sistema quando si è appena rilasciata
@@ -3100,11 +3103,11 @@ funzione di libreria è \funcd{sched\_setaffinity} ed il suo prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \item[\errcode{EINVAL}] il valore di \param{mask} contiene riferimenti a
   processori non esistenti nel sistema o a cui non è consentito l'accesso.
 \item[\errcode{EPERM}] il processo non ha i privilegi sufficienti per
   eseguire l'operazione.
+\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \end{errlist}
 ed inoltre anche \errval{EFAULT} nel suo significato generico.}
 \end{funcproto}
@@ -3167,12 +3170,12 @@ permette di identificare un insieme di processori. Il dato è normalmente una
 maschera binaria: nei casi più comuni potrebbe bastare un intero a 32 bit, in
 cui ogni bit corrisponde ad un processore, ma oggi esistono architetture in
 cui questo numero può non essere sufficiente, e per questo è stato creato
-questo \itindex{tipo!opaco} tipo opaco e una interfaccia di gestione che
+questo \index{tipo!opaco} tipo opaco e una interfaccia di gestione che
 permette di usare a basso livello un tipo di dato qualunque rendendosi
 indipendenti dal numero di bit e dalla loro disposizione.  Per questo le
 funzioni richiedono anche che oltre all'insieme di processori si indichi anche
-la dimensione dello stesso con l'argomento \param{setsize}, per il quale,
-se non si usa l'allocazione dinamica che vedremo a breve, ed è in genere
+la dimensione dello stesso con l'argomento \param{setsize}, per il quale, se
+non si usa l'allocazione dinamica che vedremo a breve, ed è in genere
 sufficiente passare il valore \code{sizeof(cpu\_set\_t)}.
 
 L'interfaccia di gestione degli insiemi di processori, oltre alla definizione
@@ -3321,9 +3324,9 @@ cui prototipo è:
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 caso \var{errno} assumerà uno dei valori:
 \begin{errlist}
-\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \item[\errcode{EINVAL}] \param{setsize} è più piccolo delle dimensioni
   della maschera di affinità usata dal kernel.
+\item[\errcode{ESRCH}] il processo \param{pid} non esiste.
 \end{errlist}
 ed inoltre anche \errval{EFAULT} nel suo significato generico.}
 \end{funcproto}
@@ -3401,11 +3404,11 @@ prototipi sono:
   successo e $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei
   valori:
 \begin{errlist}
-\item[\errcode{ESRCH}] non esiste un processo corrispondente alle indicazioni.
 \item[\errcode{EINVAL}] i valori di \param{which} o di \param{ioprio} non
   sono validi. 
 \item[\errcode{EPERM}] non si hanno i privilegi per eseguire
   l'impostazione (solo per \func{ioprio\_set}). 
+\item[\errcode{ESRCH}] non esiste un processo corrispondente alle indicazioni.
 \end{errlist}}
 \end{funcproto}
 
@@ -3842,7 +3845,7 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC.
 
   Il comportamento di default prevede che per tutti i processi si applichi la
   politica generale di sistema definita nel file
-  \procfile{/proc/sys/vm/memory\_failure\_early\_kill}, ma specificando
+  \sysctlfile{vm/memory\_failure\_early\_kill}, ma specificando
   per \param{arg2} il valore \const{PR\_MCE\_KILL\_SET} è possibile impostare
   con il contenuto di \param{arg3} una politica specifica del processo
   chiamante. Si può tornare alla politica di default del sistema utilizzando
@@ -3908,9 +3911,10 @@ indicare la unità di esecuzione generica messa a disposizione del kernel che
 Oltre a questo la funzione consente, ad uso delle nuove funzionalità di
 virtualizzazione dei processi, di creare nuovi \textit{namespace} per una
 serie di proprietà generali dei processi (come l'elenco dei PID, l'albero dei
-file, i \textit{mount point}, la rete, ecc.), che consentono di creare gruppi
-di processi che vivono in una sorta di spazio separato dagli altri, che
-costituisce poi quello che viene chiamato un \textit{container}.
+file, i \itindex{mount~point} \textit{mount point}, la rete, ecc.), che
+consentono di creare gruppi di processi che vivono in una sorta di spazio
+separato dagli altri, che costituisce poi quello che viene chiamato un
+\textit{container}.
 
 La \textit{system call} richiede soltanto due argomenti: il
 primo, \param{flags}, consente di controllare le modalità di creazione del
@@ -3989,6 +3993,9 @@ visto in sez.~\ref{sec:proc_syscall}.\footnote{ed inoltre per questa
 \end{errlist}}
 \end{funcproto}
 
+% NOTE: una pagina con la descrizione degli argomenti:
+% * http://www.lindevdoc.org/wiki/Clone 
+
 La funzione prende come primo argomento \param{fn} il puntatore alla funzione
 che verrà messa in esecuzione nel nuovo processo, che può avere un unico
 argomento di tipo puntatore a \ctyp{void}, il cui valore viene passato dal
@@ -4014,7 +4021,7 @@ disponibili:\footnote{alla stesura di questa sezione, cioè con il kernel 3.2.}
 
 \begin{basedescript}{\desclabelstyle{\pushlabel}}
 
-\item[\const{CLONE\_CHILD\_CLEARTID}]
+\item[\const{CLONE\_CHILD\_CLEARTID}] 
 \item[\const{CLONE\_CHILD\_SETTID}]
 \item[\const{CLONE\_FILES}]
 \item[\const{CLONE\_FS}]
@@ -4279,8 +4286,8 @@ aggiungendo il suffisso \code{\_r} al nome della versione normale.
 % LocalWords:  ETXTBSY EINVAL ELIBBAD BIG EFAULT EIO ENAMETOOLONG ELOOP ENOTDIR
 % LocalWords:  ENFILE EMFILE argc execl path execv execle execlp execvp vector
 % LocalWords:  list environ NULL umask pending utime cutime ustime fcntl linker
-% LocalWords:  opendir libc interpreter FreeBSD capabilities Mandatory Access
-% LocalWords:  Control MAC SELinux Security Modules LSM superuser uid gid saved
+% LocalWords:  opendir libc interpreter FreeBSD capabilities mandatory access
+% LocalWords:  control MAC SELinux security modules LSM superuser uid gid saved
 % LocalWords:  effective euid egid dell' fsuid fsgid getuid geteuid getgid SVr
 % LocalWords:  getegid IDS NFS setuid setgid all' logout utmp screen xterm TODO
 % LocalWords:  setreuid setregid FIXME ruid rgid seteuid setegid setresuid size
@@ -4323,9 +4330,9 @@ aggiungendo il suffisso \code{\_r} al nome della versione normale.
 % LocalWords:  namespace vsyscall SETTID FILES NEWIPC NEWNET NEWNS NEWPID ptid
 % LocalWords:  NEWUTS SETTLS SIGHAND SYSVSEM UNTRACED tls ctid CLEARTID panic
 % LocalWords:  loader EISDIR SIGTRAP uninterrutible killable EQUAL sizeof XOR
+% LocalWords:  destset srcset ALLOC num cpus setsize emacs
  
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
-% LocalWords:  destset srcset ALLOC num cpus setsize emacs