Correzioni e miglioramenti tipografici
[gapil.git] / fileio.tex
index 16a8ca824f86999010a18662f48d15c36df3c9d5..3091504cb8af091ebc5ed9d3bcf7e1cc82337b2c 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-2016 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",
@@ -59,10 +59,10 @@ file dovrà essere chiuso, e questo chiuderà il canale di comunicazione
 impedendo ogni ulteriore operazione.
 
 All'interno di ogni processo i file aperti sono identificati da un numero
-intero non negativo, che viene chiamato \textit{file descriptor}.  Quando un
-file viene aperto la funzione \func{open} restituisce questo numero, tutte le
-ulteriori operazioni dovranno essere compiute specificando questo stesso
-numero come argomento alle varie funzioni dell'interfaccia.
+intero non negativo, che viene chiamato appunto \textit{file descriptor}.
+Quando un file viene aperto la funzione \func{open} restituisce questo numero,
+tutte le ulteriori operazioni dovranno essere compiute specificando questo
+stesso numero come argomento alle varie funzioni dell'interfaccia.
 
 \itindbeg{process~table}
 \itindbeg{file~table}
@@ -109,7 +109,7 @@ particolare:
   \centering
   \includegraphics[width=12cm]{img/procfile}
   \caption{Schema della architettura dell'accesso ai file attraverso
-  l'interfaccia dei \textit{file descriptor}.}
+  l'interfaccia dei file descriptor.}
   \label{fig:file_proc_file}
 \end{figure}
 
@@ -133,18 +133,18 @@ essenziali come:
   \textit{file table}.
 \end{itemize*}
 
-In questa infrastruttura un \textit{file descriptor} non è altro che l'intero
-positivo che indicizza quest'ultima tabella, e che consente di recuperare il
-puntatore alla struttura \kstruct{file} corrispondente al file aperto dal
-processo a cui era stato assegnato questo indice. Una volta ottenuta grazie al
-\textit{file descriptor} la struttura \kstruct{file} corrispondente al file
-voluto nella \textit{file table}, il kernel potrà usare le funzioni messe
-disposizione dal VFS per eseguire sul file tutte le operazioni necessarie.
+In questa infrastruttura un file descriptor non è altro che l'intero positivo
+che indicizza quest'ultima tabella, e che consente di recuperare il puntatore
+alla struttura \kstruct{file} corrispondente al file aperto dal processo a cui
+era stato assegnato questo indice. Una volta ottenuta grazie al file
+descriptor la struttura \kstruct{file} corrispondente al file voluto nella
+\textit{file table}, il kernel potrà usare le funzioni messe disposizione dal
+VFS per eseguire sul file tutte le operazioni necessarie.
 
 Il meccanismo dell'apertura dei file prevede che venga sempre fornito il primo
-\textit{file descriptor} libero nella tabella, e per questo motivo essi
-vengono assegnati in successione tutte le volte che si apre un nuovo file,
-posto che non ne sia stato chiuso nessuno in precedenza.
+file descriptor libero nella tabella, e per questo motivo essi vengono
+assegnati in successione tutte le volte che si apre un nuovo file, posto che
+non ne sia stato chiuso nessuno in precedenza.
 
 \itindbeg{standard~input} 
 \itindbeg{standard~output}
@@ -178,12 +178,9 @@ tab.~\ref{tab:file_std_files}.
     \textbf{File} & \textbf{Significato} \\
     \hline
     \hline
-    \constd{STDIN\_FILENO}  & \textit{file descriptor} dello \textit{standard
-                              input}.\\ 
-    \constd{STDOUT\_FILENO} & \textit{file descriptor} dello \textit{standard
-                              output}.\\
-    \constd{STDERR\_FILENO} & \textit{file descriptor} dello \textit{standard
-                              error}.\\
+    \constd{STDIN\_FILENO}  & file descriptor dello \textit{standard input}.\\ 
+    \constd{STDOUT\_FILENO} & file descriptor dello \textit{standard output}.\\
+    \constd{STDERR\_FILENO} & file descriptor dello \textit{standard error}.\\
     \hline
   \end{tabular}
   \caption{Costanti definite in \headfile{unistd.h} per i file standard.}
@@ -265,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
@@ -410,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 è
@@ -442,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}
@@ -515,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
@@ -552,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}).\\ 
@@ -1330,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
@@ -1471,7 +1468,7 @@ scarico dei dati ad intervalli di tempo fissi.  Con le nuove versioni del
 kernel queste operazioni vengono gestite direttamente dal sistema della
 memoria virtuale, attraverso opportuni \textit{task} interni al kernel il cui
 comportamento può essere controllato attraverso il file
-\sysctlfile{vm/bdflush}.\footnote{per il significato dei valori che si possono
+\sysctlfiled{vm/bdflush}.\footnote{per il significato dei valori che si possono
   scrivere in questo file si consulti la documentazione allegata ai sorgenti
   del kernel nel file \file{Documentation/sysctl/vm.txt}, trattandosi di
   argomenti di natura sistemistica non li prenderemo in esame.} Si tenga
@@ -1861,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
@@ -2219,7 +2216,7 @@ il nome indicato nel precedente prototipo), è riportata di seguito:
   \const{F\_GETPIPE\_SZ}. I processi non privilegiati\footnote{per la
     precisione occorre la capacità \const{CAP\_SYS\_RESOURCE}.} non possono
   impostare un valore valore superiore a quello indicato da
-  \sysctlfile{fs/pipe-size-max}.  Il comando è specifico di Linux, è
+  \sysctlfiled{fs/pipe-size-max}.  Il comando è specifico di Linux, è
   disponibile solo a partire dal kernel 2.6.35, ed è utilizzabile solo se si è
   definita la macro \macro{\_GNU\_SOURCE}.
 
@@ -2462,7 +2459,7 @@ concorrente ed in sez.~\ref{sec:file_access_control} per il controllo di
 accesso.
 
 Per ragioni storiche la struttura di dati che rappresenta uno \textit{stream}
-è stata chiamata \type{FILE}, questi oggetti sono creati dalle funzioni di
+è stata chiamata \typed{FILE}, questi oggetti sono creati dalle funzioni di
 libreria e contengono tutte le informazioni necessarie a gestire le operazioni
 sugli \textit{stream}, come la posizione corrente, lo stato del buffer e degli
 indicatori di stato e di fine del file.
@@ -2632,7 +2629,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]
@@ -2873,9 +2870,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
@@ -2940,7 +2937,7 @@ intero di tipo \ctyp{long}. Dato che in certi casi, ad esempio quando si usa
 un filesystem indicizzato a 64 bit su una macchina con architettura a 32 bit,
 questo può non essere possibile lo standard POSIX ha introdotto le nuove
 funzioni \funcd{fgetpos} e \funcd{fsetpos}, che invece usano il nuovo tipo
-\type{fpos\_t}, ed i cui prototipi sono:
+\typed{fpos\_t}, ed i cui prototipi sono:
 
 \begin{funcproto}{
 \fhead{stdio.h}
@@ -4075,7 +4072,6 @@ compresi gli eventuali caratteri rimandati indietro con \func{ungetc}.
 \subsection{Gli \textit{stream} e i \textit{thread}}
 \label{sec:file_stream_thread}
 
-\itindbeg{thread}
 
 Gli \textit{stream} possono essere usati in applicazioni \textit{multi-thread}
 allo stesso modo in cui sono usati nelle applicazioni normali, ma si deve
@@ -4197,8 +4193,6 @@ con uno dei valori \const{FSETLOCKING\_INTERNAL} o
 
 % TODO trattare \func{clearerr\_unlocked} 
 
-\itindend{thread}
-
 
 
 %%% Local Variables: