Entrambi i flag (di errore e di end-of-file) possono essere cancellati usando
la funzione \funcd{clearerr}, il cui prototipo è:
\begin{prototype}{stdio.h}{void clearerr(FILE *stream)}
- Cancella i flag di errore ed end-of-file di \param{stream}.
+ Cancella i flag di errore ed \textit{end-of-file} di \param{stream}.
\end{prototype}
\noindent in genere si usa questa funzione una volta che si sia identificata e
corretta la causa di un errore per evitare di mantenere i flag attivi, così da
poter rilevare una successiva ulteriore condizione di errore. Di questa
-funzione esiste una analoga \func{clearerr\_unlocked} che non esegue il blocco
-dello \textit{stream} (vedi sez.~\ref{sec:file_stream_thread}).
+funzione esiste una analoga \funcm{clearerr\_unlocked} che non esegue il
+blocco dello \textit{stream} (vedi sez.~\ref{sec:file_stream_thread}).
\subsection{Input/output binario}
la stringa non serve più, onde evitare \itindex{memory~leak} \textit{memory
leak}.
-Infine una ulteriore estensione GNU definisce le due funzioni \func{dprintf} e
-\func{vdprintf}, che prendono un file descriptor al posto dello
+% TODO verificare se mettere prototipi di \func{dprintf} e \func{vdprintf}
+
+Infine una ulteriore estensione GNU definisce le due funzioni \funcm{dprintf} e
+\funcm{vdprintf}, che prendono un file descriptor al posto dello
\textit{stream}. Altre estensioni permettono di scrivere con caratteri
estesi. Anche queste funzioni, il cui nome è generato dalle precedenti
funzioni aggiungendo una \texttt{w} davanti a \texttt{print}, sono trattate in
di errore o fine del file viene invece restituito \val{EOF}.}
\end{functions}
\noindent e come per le analoghe funzioni di scrittura esistono le relative
-\func{vscanf}, \func{vfscanf} \func{vsscanf} che usano un puntatore ad una
-lista di argomenti.
+\funcm{vscanf}, \funcm{vfscanf} e \funcm{vsscanf} che usano un puntatore ad
+una lista di argomenti.
Tutte le funzioni della famiglia delle \func{scanf} vogliono come argomenti i
puntatori alle variabili che dovranno contenere le conversioni; questo è un
posizione sul file viene espressa con un valore a 64 bit come accade nei
sistemi più moderni.
+% TODO: mettere prototipi espliciti fseeko e ftello o menzione?
\section{Funzioni avanzate}
\macro{\_SVID\_SOURCE} o \macro{\_GNU\_SOURCE}.} che non effettua il blocco
dello stream.
+% TODO aggiungere prototipo \func{fflush\_unlocked}?
+
Se \param{stream} è \val{NULL} lo scarico dei dati è forzato per tutti gli
\textit{stream} aperti. Esistono però circostanze, ad esempio quando si vuole
essere sicuri che sia stato eseguito tutto l'output su terminale, in cui serve
di blocco dello \textit{stream}.
\end{basedescript}
+% TODO trattare \func{clearerr\_unlocked}
+
+
\itindend{thread}