Rifinitura degli indici, correzioni ortografiche varie.
[gapil.git] / filestd.tex
index 670e55b28db3a1709d4652d863b41a147dfc3e30..1dd23d93b561c0ec5ca929c8a2982313cfc58aad 100644 (file)
@@ -36,6 +36,7 @@ costituire il nucleo\footnote{queste funzioni sono state implementate la prima
 \subsection{I \textit{file stream}}
 \label{sec:file_stream}
 
+\index{file!stream|(}
 Come più volte ribadito, l'interfaccia dei file descriptor è un'interfaccia di
 basso livello, che non provvede nessuna forma di formattazione dei dati e
 nessuna forma di bufferizzazione per ottimizzare le operazioni di I/O.
@@ -67,6 +68,7 @@ formattazioni), i file stream restano del tutto equivalenti ai file descriptor
 (sui quali sono basati), ed in particolare continua a valere quanto visto in
 \secref{sec:file_sharing} a proposito dell'accesso condiviso ed in
 \secref{sec:file_access_control} per il controllo di accesso.
+\index{file!stream|)}
 
 
 \subsection{Gli oggetti \ctyp{FILE}}
@@ -252,9 +254,9 @@ associato a \param{stream} e se questo 
 preventivamente chiuso.
 
 Infine \func{fdopen} viene usata per associare uno 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 stream con file come le fifo o i socket, che non
+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 stream con file come le fifo o i socket\index{socket}, che non
 possono essere aperti con le funzioni delle librerie standard del C.
 
 \begin{table}[htb]
@@ -351,7 +353,7 @@ Uno stream viene chiuso con la funzione \func{fclose} il cui prototipo 
   Chiude lo stream \param{stream}. 
   
   \bodydesc{Restituisce 0 in caso di successo e \val{EOF} in caso di errore,
-    nel qual caso imposta \var{errno} a \const{EBADF} se il file descriptor
+    nel qual caso imposta \var{errno} a \errval{EBADF} se il file descriptor
     indicato da \param{stream} non è valido, o uno dei valori specificati
     dalla sottostante funzione che è fallita (\func{close}, \func{write} o
     \func{fflush}).}
@@ -366,7 +368,7 @@ una \func{sync} (vedi \secref{sec:file_sync}).
 
 Linux supporta anche una altra funzione, \func{fcloseall}, come estensione GNU
 implementata dalle \acr{glibc}, accessibile avendo definito
-\const{\_GNU\_SOURCE}, il suo prototipo è:
+\macro{\_GNU\_SOURCE}, il suo prototipo è:
 \begin{prototype}{stdio.h}{int fcloseall(void)}
   Chiude tutti gli stream. 
   
@@ -856,7 +858,7 @@ che eccede le dimensioni del buffer.
 Per questo motivo le \acr{glibc} prevedono, come estensione GNU, due
 nuove funzioni per la gestione dell'input/output di linea, il cui uso
 permette di risolvere questi problemi. L'uso di queste funzioni deve
-essere attivato definendo la macro \const{\_GNU\_SOURCE} prima di
+essere attivato definendo la macro \macro{\_GNU\_SOURCE} prima di
 includere \file{stdio.h}. La prima delle due, \func{getline}, serve per
 leggere una linea terminata da un newline esattamente allo stesso modo
 di \func{fgets}, il suo prototipo è:
@@ -1140,7 +1142,7 @@ scritti sulla stringa di destinazione:
 
 Per eliminare alla radice questi problemi, le \acr{glibc} supportano una
 specifica estensione GNU che alloca dinamicamente tutto lo spazio necessario;
-l'estensione si attiva al solito definendo \const{\_GNU\_SOURCE}, le due
+l'estensione si attiva al solito definendo \macro{\_GNU\_SOURCE}, le due
 funzioni sono:
 \begin{functions}
   \headdecl{stdio.h} 
@@ -1243,8 +1245,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 stream, quando cioè si ha a che fare con quello che
 viene detto un file ad \textsl{accesso casuale}.\footnote{dato che in un
-  sistema Unix esistono vari tipi di file, come le fifo ed i dispositivi, non
-  è scontato che questo sia sempre vero.}
+  sistema Unix esistono vari tipi di file, come le fifo ed i file di
+  dispositivo\index{file!di dispositivo}, non è scontato che questo sia sempre
+  vero.}
 
 In GNU/Linux ed in generale in ogni sistema unix-like la posizione nel file è
 espressa da un intero positivo, rappresentato dal tipo \type{off\_t}, il
@@ -1339,7 +1342,7 @@ il prototipo della funzione 
   
   \bodydesc{Restituisce il numero del file descriptor in caso di successo, e
     -1 qualora \param{stream} non sia valido, nel qual caso imposta
-    \var{errno} a \const{EBADF}.}
+    \var{errno} a \errval{EBADF}.}
 \end{prototype}
 \noindent ed in questo modo diventa possibile usare direttamente \func{fcntl}.
 
@@ -1504,13 +1507,13 @@ scelta, si pu
   Forza la scrittura di tutti i dati bufferizzati dello stream \param{stream}.
   
   \bodydesc{Restituisce zero in caso di successo, ed \val{EOF} in caso di
-    errore, impostando \var{errno} a \const{EBADF} se \param{stream} non è
+    errore, impostando \var{errno} a \errval{EBADF} se \param{stream} non è
     aperto o non è aperto in scrittura, o ad uno degli errori di
     \func{write}.}
 \end{prototype}
 \noindent anche di questa funzione esiste una analoga
-\func{fflush\_unlocked}\footnote{accessibile definendo \const{\_BSD\_SOURCE} o
-  \const{\_SVID\_SOURCE} o \const{\_GNU\_SOURCE}.} che non effettua il blocco
+\func{fflush\_unlocked}\footnote{accessibile definendo \macro{\_BSD\_SOURCE} o
+  \macro{\_SVID\_SOURCE} o \macro{\_GNU\_SOURCE}.} che non effettua il blocco
 dello stream.
 
 Se \param{stream} è \val{NULL} lo scarico dei dati è forzato per tutti gli
@@ -1565,7 +1568,7 @@ Ci sono comunque situazioni in cui questo non basta, come quando un thread
 necessita di compiere più di una operazione sullo stream atomicamente, per
 questo motivo le librerie provvedono anche delle funzioni che permettono la
 gestione esplicita dei blocchi sugli stream; queste funzioni sono disponibili
-definendo \const{\_POSIX\_THREAD\_SAFE\_FUNCTIONS} ed i loro prototipi sono:
+definendo \macro{\_POSIX\_THREAD\_SAFE\_FUNCTIONS} ed i loro prototipi sono:
 \begin{functions}
   \headdecl{stdio.h}