Aggiornamenti + alcune sockopt di IP
[gapil.git] / fileio.tex
index ead199a5680d1cf759dc64b0f64dd2888638cb05..1ab6aeef18fc86370ea2caad5d21010ea8f9bcdf 100644 (file)
@@ -1,6 +1,6 @@
 %% fileio.tex (merge fileunix.tex - filestd.tex)
 %%
-%% Copyright (C) 2000-2015 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",
@@ -262,9 +262,9 @@ corrispondente,\footnote{è \func{open} che alloca \kstruct{file}, la inserisce
   \item[\errcode{ENOTDIR}] si è specificato \const{O\_DIRECTORY} e
     \param{pathname} non è una directory.
   \item[\errcode{ENXIO}] si sono impostati \const{O\_NONBLOCK} o
-    \const{O\_WRONLY} ed il file è una fifo che non viene letta da nessun
-    processo o \param{pathname} è un file di dispositivo ma il dispositivo è
-    assente.
+    \const{O\_WRONLY} ed il file è una \textit{fifo} che non viene letta da
+    nessun processo o \param{pathname} è un file di dispositivo ma il
+    dispositivo è assente.
   \item[\errcode{EPERM}] si è specificato \const{O\_NOATIME} e non si è né
     amministratori né proprietari del file.
   \item[\errcode{ETXTBSY}] si è cercato di accedere in scrittura all'immagine
@@ -407,7 +407,7 @@ sez.~\ref{sec:file_fcntl_ioctl}).
                             serve ad evitare dei possibili
                             \itindex{Denial~of~Service~(DoS)}
                             \textit{DoS}\footnotemark quando \func{opendir} 
-                            viene chiamata su una fifo o su un dispositivo
+                            viene chiamata su una \textit{fifo} o su un dispositivo
                             associato ad una unità a nastri. Non viene
                             usato al di fuori dell'implementazione di
                             \func{opendir}, ed è utilizzabile soltanto se si è
@@ -439,7 +439,7 @@ sez.~\ref{sec:file_fcntl_ioctl}).
                             la macro \macro{\_GNU\_SOURCE}.\\ 
       \constd{O\_TRUNC}   & Se usato su un file di dati aperto in scrittura,
                             ne tronca la lunghezza a zero; con un terminale o
-                            una fifo viene ignorato, negli altri casi il
+                            una \textit{fifo} viene ignorato, negli altri casi il
                             comportamento non è specificato.\\ 
       \hline
     \end{tabular}
@@ -512,7 +512,7 @@ si tronca il file con \const{O\_TRUNC} verranno impostati soltanto il
                            tutte le volte che il file è pronto per le
                            operazioni di lettura o scrittura. Questo flag si
                            può usare solo terminali, pseudo-terminali e socket
-                           e, a partire dal kernel 2.6, anche sulle fifo. Per
+                           e, a partire dal kernel 2.6, anche sulle \textit{fifo}. Per
                            un bug dell'implementazione non è opportuno usarlo
                            in fase di apertura del file, deve
                            invece essere attivato successivamente con
@@ -549,7 +549,7 @@ si tronca il file con \const{O\_TRUNC} verranno impostati soltanto il
                            blocco delle stesse in attesa di una successiva
                            possibilità di esecuzione come avviene
                            normalmente. Questa modalità ha senso solo per le
-                           fifo, vedi sez.~\ref{sec:ipc_named_pipe}), o quando
+                           \textit{fifo}, vedi sez.~\ref{sec:ipc_named_pipe}), o quando
                            si vuole aprire un file di dispositivo per eseguire
                            una \func{ioctl} (vedi
                            sez.~\ref{sec:file_fcntl_ioctl}).\\ 
@@ -1327,7 +1327,7 @@ standard che si vuole redirigere e poi aprire direttamente con \func{open} il
 file vi si vuole far corrispondere, invece di duplicare un file descriptor che
 si è già aperto. La risposta sta nel fatto che il file che si vuole redirigere
 non è detto sia un file regolare, ma potrebbe essere, come accennato, anche
-una fifo o un socket, oppure potrebbe essere un file associato ad un file
+una \textit{fifo} o un socket, oppure potrebbe essere un file associato ad un file
 descriptor che si è ereditato già aperto (ad esempio attraverso un'altra
 \func{exec}) da un processo antenato del padre, del quale non si conosce il
 nome. Operando direttamente con i file descriptor \func{dup} consente di
@@ -1858,7 +1858,7 @@ costanti utilizzabili per i valori di \param{flags}.
 
 Un'ultima differenza fra le \textit{at-functions} e le funzioni tradizionali
 di cui sono estensione è, come accennato in sez.~\ref{sec:file_temp_file},
-quella relativa a \funcm{utimensat} che non è propriamente una corrispondente
+quella relativa a \func{utimensat} che non è propriamente una corrispondente
 esatta di \func{utimes} e \func{lutimes}, dato che questa funzione ha una
 maggiore precisione nella indicazione dei tempi dei file, per i quali come per
 \func{futimes}, si devono usare strutture \struct{timespec} che consentono una
@@ -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
@@ -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{}
@@ -2629,7 +2633,7 @@ esso viene preventivamente chiuso e tutti i dati pendenti vengono scaricati.
 Infine \func{fdopen} viene usata per associare uno \textit{stream} ad un file
 descriptor esistente ottenuto tramite una altra funzione (ad esempio con una
 \func{open}, una \func{dup}, o una \func{pipe}) e serve quando si vogliono
-usare gli \textit{stream} con file come le fifo o i socket, che non possono
+usare gli \textit{stream} con file come le \textit{fifo} o i socket, che non possono
 essere aperti con le funzioni delle librerie standard del C.
 
 \begin{table}[htb]
@@ -2870,9 +2874,9 @@ all'interno di un file per effettuare operazioni di lettura o scrittura in un
 punto prestabilito, sempre che l'operazione di riposizionamento sia supportata
 dal file sottostante lo \textit{stream}, nel caso cioè in cui si ha a che fare
 con quello che viene detto un file ad \textsl{accesso casuale}. Dato che in un
-sistema Unix esistono vari tipi di file, come le fifo ed i file di dispositivo
-(ad esempio i terminali), non è scontato che questo sia vero in generale, pur
-essendolo sempre nel caso di file di dati.
+sistema Unix esistono vari tipi di file, come le \textit{fifo} ed i file di
+dispositivo (ad esempio i terminali), non è scontato che questo sia vero in
+generale, pur essendolo sempre nel caso di file di dati.
 
 Con Linux ed in generale in ogni sistema unix-like la posizione nel file, come
 abbiamo già visto in sez.~\ref{sec:file_lseek}, è espressa da un intero