Correzioni varie per splice
[gapil.git] / fileio.tex
index 12447ee9f4d5e784fe3a33759b73fcc7eac4f8fd..eb448e3efb0678c1924ee0f1a1b4d88a68f384e6 100644 (file)
@@ -514,8 +514,7 @@ si tronca il file con \const{O\_TRUNC} verranno impostati soltanto il
                            in fase di apertura del file, deve
                            invece essere attivato successivamente con
                            \func{fcntl}.\\
                            in fase di apertura del file, deve
                            invece essere attivato successivamente con
                            \func{fcntl}.\\
-      \const{O\_CLOEXEC}&  Attiva la modalità di \itindex{close-on-exec}
-                           \textit{close-on-exec} (vedi
+      \const{O\_CLOEXEC}&  Attiva la modalità di \textit{close-on-exec} (vedi
                            sez.~\ref{sec:proc_exec}) sul file. Il flag è 
                            previsto dallo standard POSIX.1-2008, ed è stato
                            introdotto con il kernel 2.6.23 per evitare una
                            sez.~\ref{sec:proc_exec}) sul file. Il flag è 
                            previsto dallo standard POSIX.1-2008, ed è stato
                            introdotto con il kernel 2.6.23 per evitare una
@@ -745,10 +744,10 @@ intero positivo che esprime il numero di byte dall'inizio del file. Tutte le
 operazioni di lettura e scrittura avvengono a partire da questa posizione che
 viene automaticamente spostata in avanti del numero di byte letti o scritti.
 
 operazioni di lettura e scrittura avvengono a partire da questa posizione che
 viene automaticamente spostata in avanti del numero di byte letti o scritti.
 
-In genere, a meno di non avere richiesto la modalità \itindex{append~mode} di
-\textit{append} con \const{O\_APPEND}, questa posizione viene impostata a zero
-all'apertura del file. È possibile impostarla ad un valore qualsiasi con la
-funzione di sistema \funcd{lseek}, il cui prototipo è:
+In genere, a meno di non avere richiesto la modalità di \textit{append} con
+\const{O\_APPEND}, questa posizione viene impostata a zero all'apertura del
+file. È possibile impostarla ad un valore qualsiasi con la funzione di sistema
+\funcd{lseek}, il cui prototipo è:
 
 \begin{funcproto}{
 \fhead{sys/types.h}
 
 \begin{funcproto}{
 \fhead{sys/types.h}
@@ -825,8 +824,8 @@ Si tenga presente inoltre che usare \const{SEEK\_END} non assicura affatto che
 la successiva scrittura avvenga alla fine del file, infatti se questo è stato
 aperto anche da un altro processo che vi ha scritto, la fine del file può
 essersi spostata, ma noi scriveremo alla posizione impostata in precedenza
 la successiva scrittura avvenga alla fine del file, infatti se questo è stato
 aperto anche da un altro processo che vi ha scritto, la fine del file può
 essersi spostata, ma noi scriveremo alla posizione impostata in precedenza
-(questa è una potenziale sorgente di \itindex{race~condition} \textit{race
-  condition}, vedi sez.~\ref{sec:file_shared_access}).
+(questa è una potenziale sorgente di \textit{race condition}, vedi
+sez.~\ref{sec:file_shared_access}).
 
 Non tutti i file supportano la capacità di eseguire una \func{lseek}, in
 questo caso la funzione ritorna l'errore \errcode{ESPIPE}. Questo, oltre che
 
 Non tutti i file supportano la capacità di eseguire una \func{lseek}, in
 questo caso la funzione ritorna l'errore \errcode{ESPIPE}. Questo, oltre che
@@ -1084,7 +1083,7 @@ prototipo è:
 Come nel caso di \func{read} la funzione tenta di scrivere \param{count} byte
 a partire dalla posizione corrente nel file e sposta automaticamente la
 posizione in avanti del numero di byte scritti. Se il file è aperto in
 Come nel caso di \func{read} la funzione tenta di scrivere \param{count} byte
 a partire dalla posizione corrente nel file e sposta automaticamente la
 posizione in avanti del numero di byte scritti. Se il file è aperto in
-modalità \itindex{append~mode} \const{O\_APPEND} i dati vengono sempre scritti
+modalità \textit{append} con \const{O\_APPEND} i dati vengono sempre scritti
 alla fine del file.  Lo standard POSIX richiede che i dati scritti siano
 immediatamente disponibili ad una \func{read} chiamata dopo che la
 \func{write} che li ha scritti è ritornata; ma dati i meccanismi di caching
 alla fine del file.  Lo standard POSIX richiede che i dati scritti siano
 immediatamente disponibili ad una \func{read} chiamata dopo che la
 \func{write} che li ha scritti è ritornata; ma dati i meccanismi di caching
@@ -1307,10 +1306,9 @@ che quello che viene modificato è lo stesso campo nella voce della
 L'unica differenza fra due file descriptor duplicati è che ciascuno avrà un
 suo \textit{file descriptor flag} indipendente. A questo proposito deve essere
 tenuto presente che nel caso in cui si usi \func{dup} per duplicare un file
 L'unica differenza fra due file descriptor duplicati è che ciascuno avrà un
 suo \textit{file descriptor flag} indipendente. A questo proposito deve essere
 tenuto presente che nel caso in cui si usi \func{dup} per duplicare un file
-descriptor, se questo ha il flag di \textit{close-on-exec}
-\itindex{close-on-exec} attivo (vedi sez.~\ref{sec:proc_exec} e
-sez.~\ref{sec:file_fcntl_ioctl}), questo verrà cancellato nel file descriptor
-restituito come copia.
+descriptor, se questo ha il flag di \textit{close-on-exec} attivo (vedi
+sez.~\ref{sec:proc_exec} e sez.~\ref{sec:file_fcntl_ioctl}), questo verrà
+cancellato nel file descriptor restituito come copia.
 
 L'uso principale di questa funzione è nella shell per la redirezione dei file
 standard di tab.~\ref{tab:file_std_files} fra l'esecuzione di una \func{fork}
 
 L'uso principale di questa funzione è nella shell per la redirezione dei file
 standard di tab.~\ref{tab:file_std_files} fra l'esecuzione di una \func{fork}
@@ -1420,11 +1418,10 @@ un file descriptor reimpostandone i flag, per usarla occorre definire la macro
 \end{funcproto}
 
 La funzione è identica a \func{dup2} ma prevede la possibilità di mantenere il
 \end{funcproto}
 
 La funzione è identica a \func{dup2} ma prevede la possibilità di mantenere il
-flag di \textit{close-on-exec} \itindex{close-on-exec} sul nuovo
-file descriptor specificando \const{O\_CLOEXEC} in \param{flags} (che è l'unico
-flag usabile in questo caso). Inoltre rileva esplicitamente la possibile
-coincidenza fra \param{newfd} e \param{oldfd}, fallendo con un errore di
-\errval{EINVAL}.
+flag di \textit{close-on-exec} sul nuovo file descriptor specificando
+\const{O\_CLOEXEC} in \param{flags} (che è l'unico flag usabile in questo
+caso). Inoltre rileva esplicitamente la possibile coincidenza
+fra \param{newfd} e \param{oldfd}, fallendo con un errore di \errval{EINVAL}.
 
 
 \subsection{Le funzioni di sincronizzazione dei dati}
 
 
 \subsection{Le funzioni di sincronizzazione dei dati}
@@ -1938,9 +1935,11 @@ il nome indicato nel precedente prototipo), è riportata di seguito:
   o \errcode{EMFILE} se il processo ha già raggiunto il massimo numero di
   descrittori consentito.
 
   o \errcode{EMFILE} se il processo ha già raggiunto il massimo numero di
   descrittori consentito.
 
+\itindbeg{close-on-exec}
+
 \item[\const{F\_DUPFD\_CLOEXEC}] ha lo stesso effetto di \const{F\_DUPFD}, ma
 \item[\const{F\_DUPFD\_CLOEXEC}] ha lo stesso effetto di \const{F\_DUPFD}, ma
-  in più attiva il flag di \itindex{close-on-exec} \textit{close-on-exec} sul
-  file descriptor duplicato, in modo da evitare una successiva chiamata con
+  in più attiva il flag di \textit{close-on-exec} sul file descriptor
+  duplicato, in modo da evitare una successiva chiamata con
   \const{F\_SETFD}. La funzionalità è stata introdotta con il kernel 2.6.24 ed
   è prevista nello standard POSIX.1-2008 (si deve perciò definire
   \macro{\_POSIX\_C\_SOURCE} ad un valore adeguato secondo quanto visto in
   \const{F\_SETFD}. La funzionalità è stata introdotta con il kernel 2.6.24 ed
   è prevista nello standard POSIX.1-2008 (si deve perciò definire
   \macro{\_POSIX\_C\_SOURCE} ad un valore adeguato secondo quanto visto in
@@ -1950,20 +1949,21 @@ il nome indicato nel precedente prototipo), è riportata di seguito:
     flags} di \param{fd} in caso di successo o $-1$ in caso di errore, il
   terzo argomento viene ignorato. Non sono previsti errori diversi da
   \errval{EBADF}. Al momento l'unico flag usato è quello di
     flags} di \param{fd} in caso di successo o $-1$ in caso di errore, il
   terzo argomento viene ignorato. Non sono previsti errori diversi da
   \errval{EBADF}. Al momento l'unico flag usato è quello di
-  \itindex{close-on-exec} \textit{close-on-exec}, identificato dalla costante
-  \const{FD\_CLOEXEC}, che serve a richiedere che il file venga chiuso nella
-  esecuzione di una \func{exec} (vedi sez.~\ref{sec:proc_exec}). Un valore
-  nullo significa pertanto che il flag non è impostato.
+  \textit{close-on-exec}, identificato dalla costante \const{FD\_CLOEXEC}, che
+  serve a richiedere che il file venga chiuso nella esecuzione di una
+  \func{exec} (vedi sez.~\ref{sec:proc_exec}). Un valore nullo significa
+  pertanto che il flag non è impostato.
 
 \item[\const{F\_SETFD}] imposta il valore dei \textit{file descriptor flags}
   al valore specificato con \param{arg}, ritorna un valore nullo in caso di
   successo e $-1$ in caso di errore. Non sono previsti errori diversi da
   \errval{EBADF}. Dato che l'unico flag attualmente usato è quello di
 
 \item[\const{F\_SETFD}] imposta il valore dei \textit{file descriptor flags}
   al valore specificato con \param{arg}, ritorna un valore nullo in caso di
   successo e $-1$ in caso di errore. Non sono previsti errori diversi da
   \errval{EBADF}. Dato che l'unico flag attualmente usato è quello di
-  \itindex{close-on-exec} \textit{close-on-exec}, identificato dalla costante
-  \const{FD\_CLOEXEC}, tutti gli altri bit di \param{arg}, anche se impostati,
-  vengono ignorati.\footnote{questo almeno è quanto avviene fino al kernel
-    3.2, come si può evincere dal codice della funzione \texttt{do\_fcntl} nel
-    file \texttt{fs/fcntl.c} dei sorgenti del kernel.}
+  \textit{close-on-exec}, identificato dalla costante \const{FD\_CLOEXEC},
+  tutti gli altri bit di \param{arg}, anche se impostati, vengono
+  ignorati.\footnote{questo almeno è quanto avviene fino al kernel 3.2, come
+    si può evincere dal codice della funzione \texttt{do\_fcntl} nel file
+    \texttt{fs/fcntl.c} dei sorgenti del kernel.}
+\itindend{close-on-exec}
 
 \item[\const{F\_GETFL}] ritorna il valore dei \textit{file status flags} di
   \param{fd} in caso di successo o $-1$ in caso di errore, il terzo argomento
 
 \item[\const{F\_GETFL}] ritorna il valore dei \textit{file status flags} di
   \param{fd} in caso di successo o $-1$ in caso di errore, il terzo argomento
@@ -2346,14 +2346,12 @@ sono definite nel kernel a livello generale, e vengono sempre interpretate per
 prime, per cui, come illustrato in \cite{LinDevDri}, eventuali operazioni
 specifiche che usino lo stesso valore verrebbero ignorate:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 prime, per cui, come illustrato in \cite{LinDevDri}, eventuali operazioni
 specifiche che usino lo stesso valore verrebbero ignorate:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{FIOCLEX}] imposta il flag di \itindex{close-on-exec}
-  \textit{close-on-exec} sul file, in questo caso, essendo usata come
-  operazione logica, \func{ioctl} non richiede un terzo argomento, il cui
-  eventuale valore viene ignorato.
-\item[\const{FIONCLEX}] cancella il flag di \itindex{close-on-exec}
-  \textit{close-on-exec} sul file, in questo caso, essendo usata come
-  operazione logica, \func{ioctl} non richiede un terzo argomento, il cui
-  eventuale valore viene ignorato.
+\item[\const{FIOCLEX}] imposta il flag di \textit{close-on-exec} sul file, in
+  questo caso, essendo usata come operazione logica, \func{ioctl} non richiede
+  un terzo argomento, il cui eventuale valore viene ignorato.
+\item[\const{FIONCLEX}] cancella il flag di \textit{close-on-exec} sul file,
+  in questo caso, essendo usata come operazione logica, \func{ioctl} non
+  richiede un terzo argomento, il cui eventuale valore viene ignorato.
 \item[\const{FIOASYNC}] abilita o disabilita la modalità di I/O asincrono sul
   file (vedi sez.~\ref{sec:signal_driven_io}); il terzo argomento
   deve essere un puntatore ad un intero (cioè di tipo \texttt{const int *})
 \item[\const{FIOASYNC}] abilita o disabilita la modalità di I/O asincrono sul
   file (vedi sez.~\ref{sec:signal_driven_io}); il terzo argomento
   deve essere un puntatore ad un intero (cioè di tipo \texttt{const int *})
@@ -3501,9 +3499,9 @@ Le prime due servono per scrivere su file (lo \itindex{standard~output}
 su una stringa, in genere l'uso di \func{sprintf} è sconsigliato in quanto è
 possibile, se non si ha la sicurezza assoluta sulle dimensioni del risultato
 della stampa, eccedere le dimensioni di \param{str}, con conseguente
 su una stringa, in genere l'uso di \func{sprintf} è sconsigliato in quanto è
 possibile, se non si ha la sicurezza assoluta sulle dimensioni del risultato
 della stampa, eccedere le dimensioni di \param{str}, con conseguente
-sovrascrittura di altre variabili e possibili \itindex{buffer~overflow}
-\textit{buffer overflow}. Per questo motivo si consiglia l'uso
-dell'alternativa \funcd{snprintf}, il cui prototipo è:
+sovrascrittura di altre variabili e possibili \textit{buffer overflow}. Per
+questo motivo si consiglia l'uso dell'alternativa \funcd{snprintf}, il cui
+prototipo è:
 
 \begin{funcproto}{
 \fhead{stdio.h}
 
 \begin{funcproto}{
 \fhead{stdio.h}
@@ -3701,8 +3699,7 @@ scritti sulla stringa di destinazione:
   \func{vsprintf}.}
 \end{funcproto}
 
   \func{vsprintf}.}
 \end{funcproto}
 
-\noindent in modo da evitare possibili \itindex{buffer~overflow} buffer
-overflow.
+\noindent in modo da evitare possibili \textit{buffer overflow}.
 
 
 Per eliminare alla radice questi problemi, la \acr{glibc} supporta una
 
 
 Per eliminare alla radice questi problemi, la \acr{glibc} supporta una