X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filestd.tex;h=6730757a57cdb01d0fbea3d4153e3cf06cefaa89;hp=c0a628312bc2a3d415a81c95cb2ad737d9825077;hb=c35e7552a4a8ef0b39b306f516c00aca1b5a02d3;hpb=3b20c7a29e2e82592ae588cb9640cfb7dc4afb8a diff --git a/filestd.tex b/filestd.tex index c0a6283..6730757 100644 --- a/filestd.tex +++ b/filestd.tex @@ -1,4 +1,4 @@ -\chapter{I file: l'interfaccia standard ANSI C} + \chapter{I file: l'interfaccia standard ANSI C} \label{cha:files_std_interface} Esamineremo in questo capitolo l'interfaccia standard ANSI C per i file, @@ -126,7 +126,7 @@ riguarda l'aspetto della scrittura dei dati sul file. I caratteri che vengono scritti su uno stream normalmente vengono accumulati in un buffer e poi trasmessi in blocco in maniera asincrona rispetto alla -scrittura (quello che viene chiamato lo \textsl{scarico}, dall'ingelese +scrittura (quello che viene chiamato lo \textsl{scarico}, dall'inglese \textit{flush}, dei dati) tutte le volte che il buffer viene riempito. Un comportamento analogo avviene anche in lettura (cioè dal file viene letto un blocco di dati, anche se se ne sono richiesti una quantità inferiore), ma la @@ -327,7 +327,7 @@ La funzione effettua uno scarico di tutti i dati presenti nei buffer di uscita e scarta tutti i dati in ingresso, se era stato allocato un buffer per lo stream questo verrà rilasciato. La funzione effettua lo scarico solo per i dati presenti nei buffer in user space usati dalle \acr{glibc}; se si essere -sicuri che il kernel forzi la scrittura su disco occorrà effettuare . +sicuri che il kernel forzi la scrittura su disco occorrerà effettuare . Linux supporta, come estensione implementata dalle \acr{glibc}, anche una altra funzione, \func{fcloseall}, che serve a chiudere tutti i file, il suo @@ -358,7 +358,7 @@ modalit \item\textsl{di linea} in cui si legge/scrive una linea (terminata dal carattere di newline \verb|\n|) alla volta, vedi \secref{sec:file_line_io}. -\item\textsl{a catatteri} in cui si legge/scrive un carattere alla +\item\textsl{a caratteri} in cui si legge/scrive un carattere alla volta (con la bufferizzazione gestita automaticamente dalla libreria), vedi \secref{sec:file_char_io}. \end{enumerate} @@ -454,14 +454,17 @@ operazioni vengono effettuate un una subroutine, che a questo punto necessiterà di informazioni aggiuntive rispetto al semplice puntatore allo stream; questo può essere evitato con le due funzioni \func{\_\_freadable} e \func{\_\_fwritable} i cui prototipi sono: - \begin{functions} \headdecl{stdio\_ext.h} \funcdecl{int \_\_freadable (FILE * stream)} - \funcdecl{int \_\_fwritable(FILE * stream)} -\end{functions} + Restituisce un valore diverso da zero se \param{stream} consente la lettura. + \funcdecl{int \_\_fwritable(FILE * stream)} + Restituisce un valore diverso da zero se \param{stream} consente la + scrittura. +\end{functions} +Altre due funzioni, \func{\_\_freading} e \func{\_\_fwriting} servono \subsection{Il controllo della bufferizzazione} \label{sec:file_buffering_ctrl}