Riordinati riferimenti al close-on-exec.
[gapil.git] / prochand.tex
index 8d505579b970e9aad6e3a8c7f183311ff866934b..12eee1f8ba40b6bcb50d15ba27a31b08a8f50132 100644 (file)
@@ -1,6 +1,6 @@
 %% prochand.tex
 %%
-%% Copyright (C) 2000-2018 by Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2019 by 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 "Un preambolo",
@@ -569,7 +569,7 @@ tutti i figli. La funzione \func{fork} infatti ha la caratteristica di
 duplicare nei processi figli tutti i \textit{file descriptor} (vedi
 sez.~\ref{sec:file_fd}) dei file aperti nel processo padre (allo stesso modo
 in cui lo fa la funzione \func{dup}, trattata in sez.~\ref{sec:file_dup}). Ciò
-fa si che padre e figli condividano le stesse voci della \textit{file table}
+fa sì che padre e figli condividano le stesse voci della \textit{file table}
 (tratteremo in dettaglio questi termini in sez.~\ref{sec:file_fd} e
 sez.~\ref{sec:file_shared_access}) fra le quali c'è anche la posizione
 corrente nel file.
@@ -612,7 +612,7 @@ proprietà; la lista dettagliata delle proprietà che padre e figlio hanno in
 comune dopo l'esecuzione di una \func{fork} è la seguente:
 \begin{itemize*}
 \item i file aperti e gli eventuali flag di \textit{close-on-exec} impostati
-  (vedi sez.~\ref{sec:proc_exec} e sez.~\ref{sec:file_fcntl_ioctl});
+  (vedi sez.~\ref{sec:proc_exec} e sez.~\ref{sec:file_shared_access});
 \item gli identificatori per il controllo di accesso: l'\textsl{user-ID
     reale}, il \textsl{group-ID reale}, l'\textsl{user-ID effettivo}, il
   \textsl{group-ID effettivo} ed i \textsl{group-ID supplementari} (vedi
@@ -1640,20 +1640,18 @@ nell'esecuzione della funzione \func{exec}, queste sono:
 \end{itemize*}
 
 \itindbeg{close-on-exec}
-
 La gestione dei file aperti nel passaggio al nuovo programma lanciato con
-\func{exec} dipende dal valore che ha il flag di \textit{close-on-exec} (vedi
-sez.~\ref{sec:file_fcntl_ioctl}) per ciascun \textit{file descriptor}. I file
-per cui è impostato vengono chiusi, tutti gli altri file restano
+\func{exec} dipende dal valore che ha il flag di \textit{close-on-exec} per
+ciascun \textit{file descriptor} (vedi sez.~\ref{sec:file_shared_access}). I
+file per cui è impostato vengono chiusi, tutti gli altri file restano
 aperti. Questo significa che il comportamento predefinito è che i file restano
-aperti attraverso una \func{exec}, a meno di una chiamata esplicita a
-\func{fcntl} che imposti il suddetto flag.  Per le directory, lo standard
-POSIX.1 richiede che esse vengano chiuse attraverso una \func{exec}, in genere
-questo è fatto dalla funzione \func{opendir} (vedi
+aperti attraverso una \func{exec}, a meno di non aver impostato esplicitamente
+(in apertura o con \func{fnctl}) il suddetto flag. Per le directory, lo
+standard POSIX.1 richiede che esse vengano chiuse attraverso una \func{exec},
+in genere questo è fatto dalla funzione \func{opendir} (vedi
 sez.~\ref{sec:file_dir_read}) che effettua da sola l'impostazione del flag di
 \textit{close-on-exec} sulle directory che apre, in maniera trasparente
 all'utente.
-
 \itindend{close-on-exec}
 
 Il comportamento della funzione in relazione agli identificatori relativi al
@@ -1931,7 +1929,7 @@ supplementari non vengono modificati.
 
 L'effetto della chiamata è diverso a seconda dei privilegi del processo; se
 l'\ids{UID} effettivo è zero (cioè è quello dell'amministratore di sistema o
-il processo ha la la capacità \const{CAP\_SETUID}) allora tutti gli
+il processo ha la capacità \const{CAP\_SETUID}) allora tutti gli
 identificatori (\textit{real}, \textit{effective} e \textit{saved}) vengono
 impostati al valore specificato da \param{uid}, altrimenti viene impostato
 solo l'\ids{UID} effettivo, e soltanto se il valore specificato corrisponde o
@@ -3355,17 +3353,17 @@ compiere delle operazioni logiche sugli insiemi di processori con:
 }
 \end{funcbox}}
 
-Le prime tre macro richiedono due insiemi di partenza, \param{srcset1}
-\param{srcset2} e forniscono in un terzo insieme \param{destset} (che può
+Le prime tre macro richiedono due insiemi di partenza, \param{srcset1} e
+\param{srcset2} e forniscono in un terzo insieme \param{destset} (che può
 essere anche lo stesso di uno dei precedenti) il risultato della rispettiva
 operazione logica sui contenuti degli stessi. In sostanza con \macro{CPU\_AND}
 si otterrà come risultato l'insieme che contiene le CPU presenti in entrambi
 gli insiemi di partenza, con \macro{CPU\_OR} l'insieme che contiene le CPU
 presenti in uno qualunque dei due insiemi di partenza, e con \macro{CPU\_XOR}
-l'insieme che contiene le CPU presenti presenti in uno solo dei due insiemi di
+l'insieme che contiene le CPU presenti in uno solo dei due insiemi di
 partenza. Infine \macro{CPU\_EQUAL} confronta due insiemi ed è l'unica che
-restituisce un intero, da usare come valore logico che indica se sono
-identici o meno.
+restituisce un intero, da usare come valore logico che indica se sono identici
+o meno.
 
 Inoltre, sempre a partire dalla versione 2.7 della \acr{glibc}, è stata
 introdotta la possibilità di una allocazione dinamica degli insiemi di
@@ -3658,7 +3656,6 @@ rimosso a partire dal kernel 2.6.25.
 
 %TODO verificare http://lwn.net/Articles/355987/
 
-
 \section{Problematiche di programmazione \textit{multitasking}}
 \label{sec:proc_multi_prog}
 
@@ -3773,7 +3770,7 @@ essere soggetto a \textit{race condition} dato potrebbe essere interrotto in
 qualunque momento da un altro \textit{thread}. In tal caso occorre pianificare
 con estrema attenzione l'uso delle variabili ed utilizzare i vari meccanismi
 di sincronizzazione che anche in questo caso sono disponibili (torneremo su
-queste problematiche di questo tipo in cap.~\ref{sez:pthread_sync})
+queste problematiche di questo tipo in cap.~\ref{sec:pthread_sync})
 
 \itindbeg{deadlock}