From: Simone Piccardi Date: Sun, 4 Nov 2001 14:44:28 +0000 (+0000) Subject: si prosegue X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=13d5256e7b8cf624dc3a8a94f8dd9ded27f6eb4f si prosegue --- 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 d20b2a3..565d955 100644 Binary files a/img/procfile.dia and b/img/procfile.dia differ 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}