%
% Questa va per ultima. Va bene che e` la più usata, ma è basata sulle altre
%
-\section{I file stream e gli oggetti \texttt{FILE}}
-\label{sec:filestd_stream}
+\section{I file stream e gli oggetti \type{FILE}}
+\label{sec:file_stream}
Esamineremo in questa sezione l'interfaccia per i file stream, le modalità per
crearli, e le funzioni disponibili per leggere, scrivere e compiere le varie
l'header file \texttt{stdio.h}.
Per ragioni storiche la struttura di dati che rappresenta un stream è stata
-chiamata \texttt{FILE}, questi oggetti sono creati dalle funzioni di libreria
-e contengono tutte le informazioni necessarie a gestire le operazioni sugli
+chiamata \type{FILE}, questi oggetti sono creati dalle funzioni di libreria e
+contengono tutte le informazioni necessarie a gestire le operazioni sugli
stream, come la posizione corrente, lo stato del buffer e degli indicatori di
stato e di fine del file. Per questo motivo gli utenti non devono mai
utilizzare direttamente o allocare queste strutture, ma usare sempre puntatori
-del tipo \texttt{FILE *} (tanto che in certi caso il termine di puntatore a
-file è diventato sinonimo di stream).
+del tipo \type{FILE *} (tanto che in certi caso il termine di puntatore a file
+è diventato sinonimo di stream).
\subsection{Gli stream standard}
-\label{sec:filestd_stdfiles}
+\label{sec:file_stdfiles}
Quando un programma viene lanciato il processo ha sempre tre stream
predefiniti aperti, che rappresentano i canali standard di input/output
prestabiliti per il processo; anche questi tre stream sono definiti
-nell'header \texttt{stdio.h} e sono:
+nell'header \file{stdio.h} e sono:
\begin{itemize}
\item \texttt{FILE * stdin} Lo \textit{standard input} cioè lo stream da cui
\subsection{La bufferizzazione}
-\label{sec:filestd_buffering}
+\label{sec:file_buffering}
\section{Funzioni base}
-\label{sec:filestd_base_func}
+\label{sec:file_ansi_base_func}
\subsection{Apertura di uno stream}
-\label{sec:filestd_open}
+\label{sec:file_fopen}
\subsection{Lettura e scrittura su uno stream}
-\label{sec:filestd_io}
+\label{sec:file_io}
\subsection{Posizionamento su uno stream}
-\label{sec:filestd_seek}
+\label{sec:file_fseek}
\subsection{Input/output binario}
-\label{sec:filestd_binary_io}
+\label{sec:file_binary_io}
\subsection{Input/output di linea}
-\label{sec:filestd_line_io}
+\label{sec:file_line_io}
\subsection{Input/output formattato}
-\label{sec:filestd_formatted_io}
+\label{sec:file_formatted_io}
\subsection{Chiusura di uno stream}
-\label{sec:filestd_close}
+\label{sec:file_fclose}
\section{Funzioni avanzate}
-\label{sec:filestd_adv_func}
+\label{sec:file_stream_adv_func}
\subsection{Dettagli dell'implementazione}
-\label{sec:filestd_details}
+\label{sec:file_stream_details}
\subsection{File temporanei}
-\label{sec:filestd_temp_file}
+\label{sec:file_temp_file}
\subsection{Efficienza}
-\label{sec:filestd_efficiency}
+\label{sec:file_stream_efficiency}