si prosegue
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 4 Nov 2001 14:44:28 +0000 (14:44 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 4 Nov 2001 14:44:28 +0000 (14:44 +0000)
fileunix.tex
img/procfile.dia
intro.tex

index bc50b420f643e21720941096110ad5b3e583bc6f..084e7a32e8c6addb578864a405e220751440a212 100644 (file)
@@ -63,7 +63,7 @@ che 
 \var{file}; in ciascuna di esse sono tenute varie informazioni relative al
 file, fra cui:
 \begin{itemize*}
-\item lo stato del file (lettura, scrittura, append, etc.).
+\item lo stato del file (nel campo \var{f\_flags}).
 \item il valore della posizione corrente (l'\textit{offset}) nel file.
 \item un puntatore all'inode\footnote{nel kernel 2.4.x si è in realtà passati
     ad un puntatore ad una struttura \var{dentry} che punta a sua volta
@@ -110,11 +110,11 @@ secondo file 
 si aspetta debbano essere inviati i dati in uscita (sempre nel caso della
 shell, è il terminale su cui si sta scrivendo), il terzo è lo \textit{standard
   error}, su cui viene inviato l'output relativo agli errori.
-
 Lo standard POSIX.1 provvede tre costanti simboliche, definite nell'header
 \file{unistd.h}, al posto di questi valori numerici: 
 \begin{table}[htb]
   \centering
+  \footnotesize
   \begin{tabular}[c]{|l|l|}
     \hline
     \textbf{Costante} & \textbf{Significato} \\
@@ -156,10 +156,9 @@ funzioni fondamentali \func{open}, \func{read}, \func{write}, \func{lseek} e
 chiudere un file. 
 
 La gran parte delle operazioni sui file si effettua attraverso queste cinque
-funzioni, esse vengono chiamate anche funzioni di I/O non bufferizzato, per
-contrapporle alle analoghe previste dallo standard ANSI C (che vedremo in
-\secref{sec:file_ansi_base_func}), dato che effettuano le operazioni di lettura
-e scrittura usando direttamente le system call del kernel.
+funzioni, esse vengono chiamate anche funzioni di I/O non bufferizzato dato
+che effettuano le operazioni di lettura e scrittura usando direttamente le
+system call del kernel.
 
 
 \subsection{La funzione \func{open}}
@@ -188,9 +187,8 @@ prototipo 
     \macro{O\_CREAT} e \macro{O\_EXCL}.  
   \item \macro{EISDIR} \var{pathname} indica una directory e si è tentato
     l'accesso in scrittura. 
-  \item \macro{ENOTDIR} un componente di \var{pathname} non è una directory o
-    si è specificato \macro{O\_DIRECTORY} e \var{pathname} non è una
-    directory.  
+  \item \macro{ENOTDIR} si è specificato \macro{O\_DIRECTORY} e \var{pathname}
+    non è una directory.
   \item \macro{ENXIO} si sono settati \macro{O\_NOBLOCK} o \macro{O\_WRONLY}
     ed il file è una fifo che non viene letta da nessun processo o
     \var{pathname} è un file di dispositivo ma il dispositivo è assente.
@@ -207,8 +205,16 @@ prototipo 
   \macro{EMFILE} e \macro{ENFILE}.
 \end{functions}
 
+La funzione apre il file, usando il primo file descriptor libero, e crea
+l'opportuna voce (cioè la struttura \var{file}) nella file table.  Il file non
+è condiviso con nessun altro processo, torneremo in \secref{sec:file_sharing}
+sulla condivisione, che si ha ad esempio quando viene eseguita una
+\func{fork}, come accennato in \secref{sec:proc_fork}. Il nuovo file
+descriptor è settato per restare aperto attraverso una \func{exec} (come
+accennato in \secref{sec:proc_exec}) ed il suo offset è settato all'inizion
+del file.
 
-
+I valori specificati con \var{flag} costituiscono lo stato del file 
 
 
 \subsection{La funzione \func{creat}}
index d20b2a35ad8e86dbdd93dc75ff85943c7174628f..565d955e23e09792f7d784ef985ce2e0cf560e6e 100644 (file)
Binary files a/img/procfile.dia and b/img/procfile.dia differ
index d6eefa583b8af41333ddad6c3b7553fd5f335c7c..6e6fe60f5d13b01038d7627e28955375f0f63436 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -302,10 +302,6 @@ aggiuntive.
 Il consorzio 
 
 
-\subsection{Valori e limiti del sistema}
-\label{sec:intro_limits}
-
-
 \subsection{Tipi di dati primitivi}
 \label{sec:intro_data_types}