Iniziato esempio Mutex
[gapil.git] / fileunix.tex
index bd3ed091fa27e1b6f9a2b66de914992db8be7985..0e2658ee7807e203e26f4a9a056fed7f8a5461cb 100644 (file)
@@ -295,9 +295,10 @@ sempre il file descriptor con il valore pi
 
 \footnotetext[2]{la pagina di manuale di \func{open} segnala che questa
   opzione è difettosa su NFS, e che i programmi che la usano per stabilire un
-  file di lock possono incorrere in una race condition\index{race condition}.
-  Si consiglia come alternativa di usare un file con un nome univoco e la
-  funzione \func{link} per verificarne l'esistenza.}
+  file di lock (vedi \secref{sec:ipc_file_lock}) possono incorrere in una race
+  condition\index{race condition}.  Si consiglia come alternativa di usare un
+  file con un nome univoco e la funzione \func{link} per verificarne
+  l'esistenza.}
 
 \footnotetext[3]{\textit{Denial of Service}, si chiamano così attacchi miranti
   ad impedire un servizio causando una qualche forma di carico eccessivo per
@@ -435,8 +436,8 @@ lettura e scrittura avvengono a partire da questa posizione che viene
 automaticamente spostata in avanti del numero di byte letti o scritti.
 
 In genere (a meno di non avere richiesto la modalità \macro{O\_APPEND}) questa
-posizione viene impostata a zero all'apertura del file. È possibile impostarla ad
-un valore qualsiasi con la funzione \func{lseek}, il cui prototipo è:
+posizione viene impostata a zero all'apertura del file. È possibile impostarla
+ad un valore qualsiasi con la funzione \func{lseek}, il cui prototipo è:
 \begin{functions}
   \headdecl{sys/types.h}
   \headdecl{unistd.h}
@@ -487,11 +488,12 @@ essersi spostata, ma noi scriveremo alla posizione impostata in precedenza.
 Non tutti i file supportano la capacità di eseguire una \func{lseek}, in
 questo caso la funzione ritorna l'errore \macro{EPIPE}. Questo, oltre che per
 i tre casi citati nel prototipo, vale anche per tutti quei dispositivi che non
-supportano questa funzione, come ad esempio per le \acr{tty}.\footnote{altri
-  sistemi, usando \macro{SEEK\_SET}, in questo caso ritornano il numero di
-  caratteri che vi sono stati scritti.} Lo standard POSIX però non specifica
-niente al proposito. Infine alcuni device, ad esempio \file{/dev/null}, non
-causano un errore ma restituiscono un valore indefinito.
+supportano questa funzione, come ad esempio per i file di
+terminale.\footnote{altri sistemi, usando \macro{SEEK\_SET}, in questo caso
+  ritornano il numero di caratteri che vi sono stati scritti.} Lo standard
+POSIX però non specifica niente al proposito. Infine alcuni file speciali, ad
+esempio \file{/dev/null}, non causano un errore ma restituiscono un valore
+indefinito.
 
 
 \subsection{La funzione \func{read}}
@@ -1004,21 +1006,20 @@ valori 
   nella terza sezione di \tabref{tab:file_open_flags}.\footnote{la pagina di
     manuale riporta come impostabili solo \macro{O\_APPEND},
     \macro{O\_NONBLOCK} e \macro{O\_ASYNC}.}
-\item[\macro{F\_GETLK}] se un file lock è attivo restituisce nella struttura
-  \param{lock} la struttura \type{flock} che impedisce l'acquisizione del
-  blocco, altrimenti imposta il campo \var{l\_type} a \macro{F\_UNLCK} (per i
-  dettagli sul \textit{file locking} vedi \secref{sec:file_locking}).
-\item[\macro{F\_SETLK}] richiede il file lock specificato da \param{lock} se
-  \var{l\_type} è \macro{F\_RDLCK} o \macro{F\_WRLLCK} o lo rilascia se
-  \var{l\_type} è \macro{F\_UNLCK}. Se il lock è tenuto da qualcun'altro
-  ritorna immediatamente restituendo -1 e imposta \var{errno} a \macro{EACCES}
-  o \macro{EAGAIN} (per i dettagli sul \textit{file locking} vedi
-  \secref{sec:file_locking}).
+\item[\macro{F\_GETLK}] richiede un controllo sul file lock specificato da
+  \param{lock}, sovrascrivendo la struttura da esso puntata con il risultato
+  (questa funzionalità è trattata in dettaglio in
+  \secref{sec:file_posix_lock}).
+\item[\macro{F\_SETLK}] richiede o rilascia un file lock a seconda di quanto
+  specificato nella struttura puntata da \param{lock}. Se il lock è tenuto da
+  qualcun'altro ritorna immediatamente restituendo -1 e imposta \var{errno} a
+  \macro{EACCES} o \macro{EAGAIN} (questa funzionalità è trattata in dettaglio
+  in \secref{sec:file_posix_lock}).
 \item[\macro{F\_SETLKW}] identica a \macro{F\_SETLK} eccetto per il fatto che
   la funzione non ritorna subito ma attende che il blocco sia rilasciato. Se
   l'attesa viene interrotta da un segnale la funzione restituisce -1 e imposta
-  \var{errno} a \macro{EINTR} (per i dettagli sul \textit{file locking} vedi
-  \secref{sec:file_locking}).
+  \var{errno} a \macro{EINTR} (questa funzionalità è trattata in dettaglio in
+  \secref{sec:file_posix_lock}).
 \item[\macro{F\_GETOWN}] restituisce il \acr{pid} del processo o il process
   group che è preposto alla ricezione dei segnali \macro{SIGIO} e
   \macro{SIGURG} per gli eventi associati al file descriptor \var{fd}. Il