Aggiunta figura, molto provvisoria, sull'allocazione delle porte.
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 5 Nov 2001 12:11:09 +0000 (12:11 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 5 Nov 2001 12:11:09 +0000 (12:11 +0000)
Proseguito sui flag di open.
Raggiunta quota 200 pagine ... anche se quelle utili sono meno.

elemtcp.tex
fileunix.tex
img/port_alloc.dia [new file with mode: 0644]

index e879c9a..cce7fc6 100644 (file)
@@ -476,7 +476,7 @@ disposizione del kernel per gestire le relative tabelle.
 
 \begin{figure}[!htb]
   \centering
-  \includegraphics[width=10cm]{img/tcpip_overview.eps}  
+  \includegraphics[width=10cm]{img/port_alloc.eps}  
   \caption{Allocazione dei numeri di porta}
   \label{fig:TCPel_port_alloc}
 \end{figure}
index 95d27af..077c659 100644 (file)
@@ -252,28 +252,41 @@ nel campo \var{f\_flags} di \var{file}.
     \textbf{Flag} & \textbf{Descrizione} \\
     \hline
     \hline % modailtà di accesso
-    \macro{O_RDONLY} & apre il file in sola lettura\\
-    \macro{O_WRONLY} & apre il file in sola scrittura\\
-    \macro{O_RDWR} & apre il file lettura/scrittura\\
+    \macro{O\_RDONLY} & apre il file in sola lettura\\
+    \macro{O\_WRONLY} & apre il file in sola scrittura\\
+    \macro{O\_RDWR} & apre il file lettura/scrittura\\
     \hline % modalita di apertura
-    \macro{O_CREAT} & \\
-    \macro{O_EXCL} & \\
-    \macro{O_NOCTTY} & \\
-    \macro{O_NONBLOCK} & \\
-    \macro{O_SHLOCK} & \\
-    \macro{O_EXLOCK} & \\
-    \macro{O_TRUNC} & \\
-    \macro{O_NOFOLLOW} & \\
-    \macro{O_DIRECTORY} & \\
-    \macro{O_LARGEFILE} & \\
+    \macro{O\_CREAT} & Se il file non esiste verrà creato, con le regole di
+    titolarità del file viste in \secref{sec:file_ownership}.  \\
+    \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}.\\
+    \macro{O\_NOCTTY} & Se \var{pathname} si riferisce ad un device di
+    terminale, questo non diventerà il terminale di controllo, anche se il
+    processo non ne ha ancora uno (si veda \secref{sec:sess_xxx}).\\
+    \macro{O\_SHLOCK} & \\
+    \macro{O\_EXLOCK} & \\
+    \macro{O\_TRUNC} & \\
+    \macro{O\_NOFOLLOW} & \\
+    \macro{O\_DIRECTORY} & \\
+    \macro{O\_LARGEFILE} & \\
     \hline  % modalità di operazione
-    \macro{O_APPEND} & \\
-    \macro{O_NONBLOCK} & \\
-    \macro{O_NDELAY} & sinonimo di \macro{O_NONBLOCK}\\
-    \macro{O_ASYNC} & \\
-    \macro{O_FSYNC} & \\
-    \macro{O_SYNC} & \\
-    \macro{O_NOATIME} & \\
+    \macro{O\_APPEND} & \\
+    \macro{O\_NONBLOCK} & Apre il file in modalità non bloccante, questo
+    comporta che \func{open} ritorna immediatamente anche nei casi in cui si
+    sarebbe bloccata. inoltre tutte le operazioni di I/O successive restano
+    in modalità non bloccante, il che significa il fallimento di una
+    \func{read} in assenza di dati da leggere e quello di una \func{write} in
+    caso di impossibilità di scrivere immediatamente.  \\
+    \macro{O\_NDELAY} & sinonimo di \macro{O\_NONBLOCK}\\
+    \macro{O\_ASYNC} & \\
+    \macro{O\_FSYNC} & \\
+    \macro{O\_SYNC} & \\
+    \macro{O\_NOATIME} & \\
     \hline
   \end{tabular}
   \caption{Costanti che identificano i vari flag di stato del file specificati
diff --git a/img/port_alloc.dia b/img/port_alloc.dia
new file mode 100644 (file)
index 0000000..2acd1b2
Binary files /dev/null and b/img/port_alloc.dia differ