Modifiche minime
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 11 Nov 2001 22:43:04 +0000 (22:43 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 11 Nov 2001 22:43:04 +0000 (22:43 +0000)
fileunix.tex
gapil.tex

index c2412e8139397171bae5f769e764872b4626e44c..258eae0adcc24fa0041238985bd5a4794e44e0a0 100644 (file)
@@ -212,7 +212,6 @@ di \secref{sec:file_std_descr}: se ad esempio si chiude lo standard input e si
 apre subito dopo un nuovo file questo diventerà il nuovo standard input (avrà
 cioè il file descriptor 0).
 
 apre subito dopo un nuovo file questo diventerà il nuovo standard input (avrà
 cioè il file descriptor 0).
 
-
 \begin{table}[!htb]
   \centering
   \footnotesize
 \begin{table}[!htb]
   \centering
   \footnotesize
@@ -230,12 +229,12 @@ cio
     titolarità del file viste in \secref{sec:file_ownership}. Il parametro
     \var{mode} deve essere specificato. \\
     \macro{O\_EXCL} & usato in congiunzione con \macro{O\_CREAT} fa sì che
     titolarità del file viste in \secref{sec:file_ownership}. Il parametro
     \var{mode} deve essere specificato. \\
     \macro{O\_EXCL} & usato in congiunzione con \macro{O\_CREAT} fa sì che
-    l'esistenza del file diventi un errore\footnote{la man page 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.  Si consiglia come alternativa di usare un file con un nome
-    univoco e la funzione \func{link} per verificarne l'esistenza.} che fa
-    fallire \func{open} con \macro{EEXIST}. \\
+    l'esistenza del file diventi un errore\protect\footnote{la man page 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.  Si consiglia come alternativa di usare un file 
+      con un nome univoco e la funzione \func{link} per verificarne 
+      l'esistenza.} che fa fallire \func{open} con \macro{EEXIST}. \\
     \macro{O\_NONBLOCK} & apre il file in modalità non bloccante. Questo
     valore specifica anche una modalità di operazione (vedi sotto), e 
     comporta che \func{open} ritorni immediatamente (torneremo su
     \macro{O\_NONBLOCK} & apre il file in modalità non bloccante. Questo
     valore specifica anche una modalità di operazione (vedi sotto), e 
     comporta che \func{open} ritorni immediatamente (torneremo su
@@ -257,12 +256,12 @@ cio
     opzione è ignorata. \\
     \macro{O\_DIRECTORY} & se \var{pathname} non è una directory la chiamata
     fallisce. Questo flag è specifico di Linux ed è stato introdotto con il
     opzione è ignorata. \\
     \macro{O\_DIRECTORY} & se \var{pathname} non è una directory la chiamata
     fallisce. Questo flag è specifico di Linux ed è stato introdotto con il
-    kernel 2.1.126 per evitare dei DoS\footnote{Denial of Service, si chiamano
-    così attacchi miranti ad impedire un servizio causando una qualche forma
-    di carico eccessivo per il sistema, che resta bloccato nelle risposte
-    all'attacco} quando \func{opendir} viene chiamata su una fifo o su un
-    device di unità a nastri, non deve essere utilizzato al di fuori
-    dell'implementazione di \func{opendir}. \\
+    kernel 2.1.126 per evitare dei DoS\protect\footnote{Denial of Service, si 
+      chiamano così attacchi miranti ad impedire un servizio causando una 
+      qualche forma di carico eccessivo per il sistema, che resta bloccato 
+      nelle risposte all'attacco} quando \func{opendir} viene chiamata su una 
+    fifo o su un device di unità a nastri, non deve essere utilizzato al di 
+    fuori dell'implementazione di \func{opendir}. \\
     \macro{O\_LARGEFILE} & nel caso di sistemi a 32 bit che supportano file di
     grandi dimensioni consente di aprire file le cui dimensioni non possono
     essere rappresentate da numeri a 31 bit. \\
     \macro{O\_LARGEFILE} & nel caso di sistemi a 32 bit che supportano file di
     grandi dimensioni consente di aprire file le cui dimensioni non possono
     essere rappresentate da numeri a 31 bit. \\
@@ -672,8 +671,8 @@ stesso file, in particolare occorre tenere presente che:
   automaticamente con l'aggiornamento del campo \var{i\_size} nell'inode.
 \item se un file è in modalità \macro{O\_APPEND} tutte le volte che viene
   effettuata una scrittura la posizione corrente viene prima settata alla
   automaticamente con l'aggiornamento del campo \var{i\_size} nell'inode.
 \item se un file è in modalità \macro{O\_APPEND} tutte le volte che viene
   effettuata una scrittura la posizione corrente viene prima settata alla
-  dimensione corrente del file letta dall'inode. In questo modo il file viene
-  automaticamente esteso.
+  dimensione corrente del file letta dall'inode. Dopo la scrittura il file
+  viene automaticamente esteso.
 \item l'effetto di \func{lseek} è solo quello di cambiare il campo \var{f\_pos}
   nella struttura \var{file} della \textit{file table}, non c'è nessuna
   operazione sul file su disco. Quando la si usa per porsi alla fine del file
 \item l'effetto di \func{lseek} è solo quello di cambiare il campo \var{f\_pos}
   nella struttura \var{file} della \textit{file table}, non c'è nessuna
   operazione sul file su disco. Quando la si usa per porsi alla fine del file
@@ -713,11 +712,17 @@ vengono toccati anche in caso di condivisione della voce della \textit{file
 
 
 
 
 
 
-
 \subsection{Operazioni atomiche coi file}
 \label{sec:file_atomic}
 
 \subsection{Operazioni atomiche coi file}
 \label{sec:file_atomic}
 
-cvs add 
+Come si è visto in un sistema unix è sempre possibile per più processi
+accedere in contemporanea allo stesso file, e che le operazioni di lettura e
+scrittura saranno fatte in base alla posizione corrente nel file. Ovviamente
+senza prevedere opportuni meccanismi di sincronizzazione le operazioni
+potranno mescolarsi in maniera imprevedibile. L'unica garanzia è che se si è
+in modalità \macro{O\_APPEND} il sistema assicura che si scriva (con il
+procedimento appena esposto) sempre alla fine del file.
+
 
 
 
 
 
 
@@ -727,8 +732,7 @@ cvs add
 
 
 \begin{figure}[htb]
 
 
 \begin{figure}[htb]
-  \centering
-  \includegraphics[width=14cm]{img/filedup.eps}
+  \centering \includegraphics[width=14cm]{img/filedup.eps}
   \caption{Schema dell'accesso ai file duplicati}
   \label{fig:file_dup}
 \end{figure}
   \caption{Schema dell'accesso ai file duplicati}
   \label{fig:file_dup}
 \end{figure}
index 31347c061f24762330cd787db824bd580198fdbf..fc2381821a5bb26ab4e715d4db5237890a122ebe 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -1,4 +1,4 @@
-%% 
+%%
 %% GaPiL : Guida alla Programmazione in Linux
 %% 
 %% S. Piccardi Oct. 2000 
 %% GaPiL : Guida alla Programmazione in Linux
 %% 
 %% S. Piccardi Oct. 2000