scrivere il contenuto. Tutto ciò ha due aspetti: il primo è che il kernel, per
il concetto dell'\textit{everything is a file}, deve fornire una interfaccia
che consenta di operare sui file, sia che questi corrispondano ai normali file
-di dati, sia che siano quei file speciali (i cosiddetti
-\index{file!di~dispositivo} file di dispositivo, o \textit{device file}) che
-permettono di accedere alle periferiche.
+di dati, o ai cosiddetti \index{file!speciali} ``\textsl{file speciali}'',
+come \index{file!di~dispositivo} i file di dispositivo (o \textit{device
+ file}) che permettono di accedere alle periferiche o le fifo ed i socket che
+forniscono funzionalità di comunicazione fra processi.
Il secondo aspetto è che per poter utilizzare dei normali file di dati il
kernel deve provvedere ad organizzare e rendere accessibile in maniera
sono rappresentati da numeri interi (cioè semplici variabili di tipo
\ctyp{int}). L'interfaccia è definita nell'\textit{header file}
\headfile{unistd.h} e la tratteremo in dettaglio in
-cap.~\ref{cha:file_unix_interface}.
+sez.~\ref{sec:file_unix_interface}.
\itindbeg{file~stream}
puntatori ad un opportuna struttura definita dalle librerie del C, ad essi si
accede sempre in maniera indiretta utilizzando il tipo \code{FILE *}.
L'interfaccia è definita nell'\textit{header file} \headfile{stdio.h} e la
-tratteremo in dettaglio nel cap.~\ref{cha:files_std_interface}.
+tratteremo in dettaglio in sez.~\ref{sec:files_std_interface}.
Entrambe le interfacce possono essere usate per l'accesso ai file come agli
altri oggetti del VFS, ma per poter accedere alle operazioni di controllo