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 \type{FILE *} (tanto che in certi caso il termine di puntatore a file
+del tipo \type{FILE *} (tanto che in certi casi il termine di puntatore a file
è diventato sinonimo di stream).
\subsection{Gli stream standard}
-\label{sec:file_stdfiles}
+\label{sec:file_std_stream}
-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 \file{stdio.h} e sono:
+
+Ai tre file standard (vedi \secref{sec:file_std_descr}) aperti per ogni
+processo, corrispondono altrettanti stream predefiniti per ogni processo, che
+rappresentano i canali standard di input/output prestabiliti; anche questi
+tre stream sono definiti nell'header \file{stdio.h} e sono:
\begin{itemize}
\item \var{FILE * stdin} Lo \textit{standard input} cioè lo stream da cui
\subsection{La bufferizzazione}
\label{sec:file_buffering}
+
+
\section{Funzioni base}
\label{sec:file_ansi_base_func}
+
\subsection{Apertura di uno stream}
\label{sec:file_fopen}
+
\subsection{Lettura e scrittura su uno stream}
\label{sec:file_io}
+
\subsection{Posizionamento su uno stream}
\label{sec:file_fseek}
+
\subsection{Input/output binario}
\label{sec:file_binary_io}
+
\subsection{Input/output di linea}
\label{sec:file_line_io}
+
\subsection{Input/output formattato}
\label{sec:file_formatted_io}
+
\subsection{Chiusura di uno stream}
\label{sec:file_fclose}
+
+
\section{Funzioni avanzate}
\label{sec:file_stream_adv_func}
\subsection{Dettagli dell'implementazione}
\label{sec:file_stream_details}
+
\subsection{File temporanei}
\label{sec:file_temp_file}
+
\subsection{Efficienza}
\label{sec:file_stream_efficiency}