From 13d5256e7b8cf624dc3a8a94f8dd9ded27f6eb4f Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sun, 4 Nov 2001 14:44:28 +0000 Subject: [PATCH] si prosegue --- fileunix.tex | 26 ++++++++++++++++---------- img/procfile.dia | Bin 4545 -> 3859 bytes intro.tex | 4 ---- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/fileunix.tex b/fileunix.tex index bc50b42..084e7a3 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -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}} diff --git a/img/procfile.dia b/img/procfile.dia index d20b2a35ad8e86dbdd93dc75ff85943c7174628f..565d955e23e09792f7d784ef985ce2e0cf560e6e 100644 GIT binary patch literal 3859 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 Vi~RRv8a;pg^nVaq!OZYi0RVm(fUE!j literal 4545 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 diff --git a/intro.tex b/intro.tex index d6eefa5..6e6fe60 100644 --- 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} -- 2.30.2