\chapter{I files: l'interfaccia I/O di unix}
\label{cha:file_unix_interface}
-
Esamineremo in questo capitolo la prima delle due interfacce di programmazione
-per i file, quella dei file descriptor, nativa di unix.
+per i file, quella dei file descriptor, nativa di unix. Questa è
+l'interfaccia di basso livello, che non prevede funzioni evolute come la
+bufferizzazione o funzioni di lettura o scrittura formattata, su cui è
+costruita anche l'interfaccia standard dei file definta dallo standard ANSI
+C.
+
+
+\section{L'architettura di base}
+\label{sec:file_base_arch}
+Iniziamo la trattazione con una panoramica sull'architettura base della
+intefaccuia dei file descriptor. Esamineremo in questa sezione
-\section{I file descriptors}
-\label{sec:fileunix_fd}
+\subsection{I file descriptors}
+\label{sec:file_fd}
Per poter accedere al contenuto dei file occorre anzitutto aprirlo. Questo
crea un canale di comunicazione che permette di eseguire una serie di
operazione.
\section{Le funzioni base}
-\label{sec:fileunix_base_func}
+\label{sec:file_base_func}
L'interfaccia standard unix per l'input/output sui file è su cinque funzioni
-\texttt{open}, \texttt{read}, \texttt{write}, \texttt{lseek}, \texttt{close}
+\texttt{open}, \texttt{read}, \texttt{write}, \texttt{lseek}, \texttt{close};
\subsection{La funzione \texttt{open}}
-\label{sec:fileunix_open}
+\label{sec:file_open}
\subsection{La funzione \texttt{creat}}
-\label{sec:fileunix_creat}
+\label{sec:file_creat}
\subsection{La funzione \texttt{close}}
-\label{sec:fileunix_close}
+\label{sec:file_close}
\subsection{La funzione \texttt{lseek}}
-\label{sec:fileunix_lseek}
+\label{sec:file_lseek}
\subsection{La funzione \texttt{read}}
-\label{sec:fileunix_read}
+\label{sec:file_read}
\subsection{La funzione \texttt{write}}
-\label{sec:fileunix_write}
+\label{sec:file_write}
\section{La condivisione dei files}
-\label{sec:fileunix_sharing}
+\label{sec:file_sharing}
\subsection{Operazioni atomiche}
-\label{sec:fileunix_atomic}
+\label{sec:file_atomic}
\section{Funzioni avanzate}
-\label{sec:fileunix_adv_func}
+\label{sec:file_adv_func}
\subsection{La funzioni \texttt{dup} e \texttt{dup2}}
-\label{sec:fileunix_dup}
+\label{sec:file_dup}
\subsection{La funzione \texttt{fcntl}}
-\label{sec:fileunix_fcntl}
+\label{sec:file_fcntl}
\subsection{La funzione \texttt{ioctl}}
-\label{sec:fileunix_ioctl}
+\label{sec:file_ioctl}