Ancora revisione
[gapil.git] / fileio.tex
index 3091504cb8af091ebc5ed9d3bcf7e1cc82337b2c..b7db3a7073279bd39e6d0f957d7aff27a873c552 100644 (file)
@@ -1,6 +1,6 @@
 %% fileio.tex (merge fileunix.tex - filestd.tex)
 %%
-%% Copyright (C) 2000-2016 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 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",
@@ -1194,7 +1194,7 @@ situazione è illustrata in fig.~\ref{fig:file_acc_child}; dato che il processo
 figlio riceve una copia dello spazio di indirizzi del padre, riceverà anche
 una copia di \kstruct{file\_struct} e della relativa tabella dei file aperti.
 
-Questo significa che il figlio avrà gli stessi file aperti del padre, in
+Questo significa che il figlio avrà gli stessi file aperti del padre in
 quanto la sua \kstruct{file\_struct}, pur essendo allocata in maniera
 indipendente, contiene gli stessi valori di quella del padre e quindi i suoi
 file descriptor faranno riferimento alla stessa voce nella \textit{file
@@ -2222,6 +2222,9 @@ il nome indicato nel precedente prototipo), è riportata di seguito:
 
 \end{basedescript}
 
+% TODO: trattare RWH_WRITE_LIFE_EXTREME e RWH_WRITE_LIFE_SHORT aggiunte con
+% il kernel 4.13 (vedi https://lwn.net/Articles/727385/)
+
 La maggior parte delle funzionalità controllate dai comandi di \func{fcntl}
 sono avanzate e richiedono degli approfondimenti ulteriori, saranno pertanto
 riprese più avanti quando affronteremo le problematiche ad esse relative. In
@@ -2232,10 +2235,10 @@ sez.~\ref{sec:file_asyncronous_operation} mentre quelle relative al
 di questa funzione con i socket verrà trattato in
 sez.~\ref{sec:sock_ctrl_func}.
 
-La gran parte dei comandi di \func{fcntl} (\const{F\_DUPFD}, \const{F\_GETFD},
-\const{F\_SETFD}, \const{F\_GETFL}, \const{F\_SETFL}, \const{F\_GETLK},
-\const{F\_SETLK} e \const{F\_SETLKW}) sono previsti da SVr4 e 4.3BSD e
-standardizzati in POSIX.1-2001 che inoltre prevede gli ulteriori
+La gran parte dei comandi di \func{fcntl} (come \const{F\_DUPFD},
+\const{F\_GETFD}, \const{F\_SETFD}, \const{F\_GETFL}, \const{F\_SETFL},
+\const{F\_GETLK}, \const{F\_SETLK} e \const{F\_SETLKW}) sono previsti da SVr4
+e 4.3BSD e standardizzati in POSIX.1-2001 che inoltre prevede gli ulteriori
 \const{F\_GETOWN} e \const{F\_SETOWN}. Pertanto nell'elenco si sono indicate
 esplicitamente soltanto le ulteriori richieste in termini delle macro di
 funzionalità di sez.~\ref{sec:intro_gcc_glibc_std} soltanto per le
@@ -2394,6 +2397,7 @@ due funzioni sono rimaste.
 % TODO trovare qualche posto per la eventuale documentazione delle seguenti
 % (bassa/bassissima priorità)
 % EXT4_IOC_MOVE_EXT (dal 2.6.31)
+%  EXT4_IOC_SHUTDOWN (dal 4.10), XFS_IOC_GOINGDOWN e futura FS_IOC_SHUTDOWN
 % ioctl di btrfs, vedi http://lwn.net/Articles/580732/
 
 % \chapter{}
@@ -3036,16 +3040,16 @@ di architettura hardware, come la dimensione del bus o la modalità di
 ordinamento dei bit o il formato delle variabili in floating point.
 
 Per questo motivo quando si usa l'input/output binario occorre sempre prendere
-le opportune precauzioni (in genere usare un formato di più alto livello che
-permetta di recuperare l'informazione completa), per assicurarsi che versioni
-diverse del programma siano in grado di rileggere i dati tenendo conto delle
+le opportune precauzioni come usare un formato di più alto livello che
+permetta di recuperare l'informazione completa, per assicurarsi che versioni
+diverse del programma siano in grado di rileggere i dati, tenendo conto delle
 eventuali differenze.
 
-Le \acr{glibc} definiscono altre due funzioni per l'I/O binario,
-\funcd{fread\_unlocked} e \funcd{fwrite\_unlocked} che evitano il lock
-implicito dello \textit{stream}, usato per dalla librerie per la gestione
-delle applicazioni \textit{multi-thread} (si veda
-sez.~\ref{sec:file_stream_thread} per i dettagli), i loro prototipi sono:
+Le \acr{glibc} definiscono infine due ulteriori funzioni per l'I/O binario,
+\funcd{fread\_unlocked} e \funcd{fwrite\_unlocked}, che evitano il lock
+implicito dello \textit{stream} usato per dalla librerie per la gestione delle
+applicazioni \textit{multi-thread} (si veda sez.~\ref{sec:file_stream_thread}
+per i dettagli), i loro prototipi sono:
 
 \begin{funcproto}{
 \fhead{stdio.h}
@@ -4025,7 +4029,7 @@ scelta, si può forzare lo scarico dei dati sul file con la funzione
 \end{funcproto}
 
 \noindent anche di questa funzione esiste una analoga \func{fflush\_unlocked}
-(accessibile definendo \macro{\_BSD\_SOURCE} o \macro{\_SVID\_SOURCE} o
+(accessibile definendo una fra \macro{\_BSD\_SOURCE}, \macro{\_SVID\_SOURCE} o
 \macro{\_GNU\_SOURCE}) che non effettua il blocco dello \textit{stream}.
 
 % TODO aggiungere prototipo \func{fflush\_unlocked}?