Tabella delle operazioni di flock
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 15 Oct 2002 20:18:57 +0000 (20:18 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 15 Oct 2002 20:18:57 +0000 (20:18 +0000)
fileadv.tex

index 2a2d9162862cd5f380e6b98f5a102026b2ba4235..7ff5ff72f9ac965bb3682fa455e3d4d8e73b30aa 100644 (file)
@@ -1252,7 +1252,7 @@ intero file, come accennato essa 
 prototipo è:
 \begin{prototype}{sys/file.h}{int flock(int fd, int operation)}
   
-  Applica o rimuove un blocco sul file \param{fd}.
+  Applica o rimuove un \textit{file lock} sul file \param{fd}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
     errore, nel qual caso \var{errno} assumerà uno dei valori:
@@ -1263,8 +1263,37 @@ prototipo 
   }
 \end{prototype}
 
-Il comportamento della funzione è specificato dal valore di \param{operation},
-che è espresso come maschera binaria, 
+Il comportamento della funzione è specificato dal valore dell'argomento
+\param{operation}, da passare come maschera binaria dei valori riportati in 
+\tabref{tab:file_flock_operation}.
+
+\begin{table}[htb]
+  \centering
+  \footnotesize
+  \begin{tabular}[c]{|l|l|}
+    \hline
+    \textbf{Valore} & \textbf{Significato} \\
+    \hline
+    \hline
+    \macro{LOCK\_SH} & Asserisce uno \textit{shared lock} (blocco
+                       condiviso) sul file. Un blocco condiviso può essere
+                       mantenuto da più processi contemporaneamente.\\ 
+    \macro{LOCK\_EX} & Asserisce un \textit{esclusive lock} (blocco
+                       esclusivo) sul file. Un blocco esclusivo può essere
+                       mantenuto da un solo processo alla volta.\\
+    \macro{LOCK\_UN} & Sblocca il file.\\
+    \macro{LOCK\_NB} & Impedisce che la funzione si blocchi nella
+                       richiesta di un \textit{file lock}.\\
+    \hline    
+  \end{tabular}
+  \caption{Valori dell'argomento \param{operation} di \func{flock}.}
+  \label{tab:file_flock_operation}
+\end{table}
+
+
+Si tenga conto che la funzione non è in grado di eseguire un blocco su NFS, in
+tal caso occorre usare \func{fcntl} che funziona anche attraverso NFS, posto
+che il server supporti il \textit{file locking}.