Altro link per O_TMPFILE
[gapil.git] / fileio.tex
index 883e8293731068474a2ef3936e8de17748e5e349..75d5fb6589a1f227d6b0ce98cc50edadaf4632be 100644 (file)
@@ -1,6 +1,6 @@
 %% fileio.tex (merge fileunix.tex - filestd.tex)
 %%
-%% Copyright (C) 2000-2012 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2013 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",
@@ -121,13 +121,14 @@ che il kernel mantiene per ciascun file e ciascun processo.
 
 Come si può notare alla fine il collegamento che consente di porre in
 relazione i file ed i processi è effettuato attraverso i dati mantenuti nella
-struttura \kstruct{files\_struct}, essa infatti contiene alcune informazioni
+struttura \kstruct{files\_struct} essa infatti contiene alcune informazioni
 essenziali come:
 \begin{itemize*}
 \item i flag relativi ai file aperti dal processo.
 \item il numero di file aperti dal processo.
-\item una tabella di puntatori alla relativa voce nella \itindex{file~table}
-  \textit{file table} per ciascun file aperto.
+\item la \itindex{file~descriptor~table} \textit{file descriptor table}, una
+  tabella con i puntatori, per ciascun file aperto, alla relativa voce nella
+  \itindex{file~table} \textit{file table}.
 \end{itemize*}
 
 In questa infrastruttura un \textit{file descriptor} non è altro che l'intero
@@ -442,6 +443,11 @@ riletti da \func{fcntl} (vedi sez.~\ref{sec:file_fcntl_ioctl}).
   \label{tab:open_time_flag}
 \end{table}
 
+
+% TODO: aggiungere O_TMPFILE per la creazione di file temporanei senza che
+% questi appaiano sul filesystem, introdotto con il 3.11, vedi:
+% https://lwn.net/Articles/556512/, http://kernelnewbies.org/Linux_3.11
+
 \footnotetext{acronimo di \itindex{Denial~of~Service~(DoS)} \textit{Denial of
     Service}, si chiamano così attacchi miranti ad impedire un servizio
   causando una qualche forma di carico eccessivo per il sistema, che resta
@@ -753,9 +759,9 @@ funzione di sistema \funcd{lseek}, il cui prototipo è:
 {La funzione ritorna il valore della posizione sul file in caso di successo e
   $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-    \item[\errcode{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
     \item[\errcode{EINVAL}] \param{whence} non è un valore valido.
     \item[\errcode{EOVERFLOW}] \param{offset} non può essere rappresentato nel
+    \item[\errcode{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
       tipo \type{off\_t}.
   \end{errlist}
   ed inoltre \errval{EBADF} nel suo significato generico.}
@@ -1055,7 +1061,7 @@ prototipo è:
 {La funzione ritorna il numero di byte scritti in caso di successo e $-1$ per
   un errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-  \item[\errcode{EAGAIN}] ci si sarebbe bloccati, ma il file era aperto in
+  \item[\errcode{EAGAIN}] ci siq sarebbe bloccati, ma il file era aperto in
     modalità \const{O\_NONBLOCK}.
   \item[\errcode{EFBIG}] si è cercato di scrivere oltre la dimensione massima
     consentita dal filesystem o il limite per le dimensioni dei file del
@@ -1487,7 +1493,7 @@ prototipi sono:
   \item[\errcode{EINVAL}] \param{fd} è un \index{file!speciali} file speciale
     che non supporta la sincronizzazione.
   \end{errlist}
-  ed inoltre \errval{EBADF}, \errval{EROFS} e \errval{EIO} nel loro
+  ed inoltre \errval{EBADF}, \errval{EIO} e \errval{EROFS} nel loro
   significato generico.}
 \end{funcproto}
 
@@ -1694,6 +1700,8 @@ anche l'aggiunta di un ulteriore argomento finale, \param{flags}.
 
 
 % TODO manca prototipo di linkat, verificare se metterlo o metter menzione
+% altre modifiche al riguardo nel 3.11 (AT_EMPTY_PATH?) vedi
+% http://lwn.net/Articles/562488/ 
 % TODO manca prototipo di utimensat, verificare se metterlo o metter menzione
 
 Per tutte le funzioni che lo prevedono, a parte \func{unlinkat} e
@@ -2258,11 +2266,11 @@ per compiere operazioni specializzate; il suo prototipo è:
   sempre $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei
   valori:
   \begin{errlist}
+  \item[\errcode{EINVAL}] gli argomenti \param{request} o \param{argp} non sono
+    validi.
   \item[\errcode{ENOTTY}] il file \param{fd} non è associato con un
     dispositivo, o la richiesta non è applicabile all'oggetto a cui fa
     riferimento \param{fd}.
-  \item[\errcode{EINVAL}] gli argomenti \param{request} o \param{argp} non sono
-    validi.
   \end{errlist}
   ed inoltre \errval{EBADF} e \errval{EFAULT} nel loro significato generico.}
 \end{funcproto}