X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filestd.tex;h=eb62d0a0b5098904971277c4894c261d925bc625;hp=8d6b55b722d24c1f101b1f1e1509ece5861fa3a9;hb=59b107d5207f19e0049bbd1032e10cba660da92e;hpb=613d2f30d1c3ec28c569578a7b7bab23a40e8fea diff --git a/filestd.tex b/filestd.tex index 8d6b55b..eb62d0a 100644 --- a/filestd.tex +++ b/filestd.tex @@ -137,7 +137,7 @@ uno degli aspetti pi riguarda l'aspetto della scrittura dei dati sul file. I caratteri che vengono scritti su di uno stream normalmente vengono -accumulati in un buffer e poi trasmessi in blocco\footnote{qiesta operazione +accumulati in un buffer e poi trasmessi in blocco\footnote{questa operazione viene usualmente chiamata \textsl{scaricamento} dei dati, dal termine inglese \textit{flush}.} tutte le volte che il buffer viene riempito, in maniera asincrona rispetto alla scrittura. Un comportamento analogo avviene @@ -152,7 +152,7 @@ Per lo stesso motivo, in tutte le situazioni in cui si sta facendo dell'input/output interattivo, bisognerà tenere presente le caratteristiche delle operazioni di scaricamento dei dati, poiché non è detto che ad una scrittura sullo stream corrisponda una immediata scrittura sul dispositivo (la -cosa è particolaemente evidente quando con le operazioni di input/output su +cosa è particolarmente evidente quando con le operazioni di input/output su terminale). Per rispondere ad esigenze diverse, lo standard definisce tre distinte @@ -854,7 +854,7 @@ illustrate finora (eccetto \func{gets} e \func{puts}), che eseguono esattamente le stesse operazioni delle loro equivalenti, evitando però il lock implicito dello stream (vedi \secref{sec:file_stream_thread}). Come per le altre forma di I/O, dette funzioni hanno lo stesso nome della loro analoga -normale, con l'aggiuta dell'estensione \code{\_unlocked}. +normale, con l'aggiunta dell'estensione \code{\_unlocked}. Come abbiamo visto, le funzioni di lettura per l'input/output di linea previste dallo standard ANSI C presentano svariati inconvenienti. Benché @@ -914,8 +914,8 @@ essere il seguente: ... nread = getline(&ptr, &n, file); \end{lstlisting} -e per evitare memory leak occorre ricordarsi di liberare \var{ptr} con -una \func{free}. +e per evitare memory leak\index{memory leak} occorre ricordarsi di liberare +\var{ptr} con una \func{free}. Il valore di ritorno della funzione indica il numero di caratteri letti dallo stream (quindi compreso il newline, ma non lo zero di @@ -1182,7 +1182,7 @@ restituito (si ricordi quanto detto in \secref{sec:proc_var_passing} a proposito dei \textit{value result argument}) l'indirizzo della stringa allocata automaticamente dalle funzioni. Occorre inoltre ricordarsi di invocare \func{free} per liberare detto puntatore quando la stringa non serve -più, onde evitare memory leak. +più, onde evitare memory leak\index{memory leak}. Infine una ulteriore estensione GNU definisce le due funzioni \func{dprintf} e \func{vdprintf}, che prendono un file descriptor al posto dello stream. Altre @@ -1194,7 +1194,7 @@ davanti a \texttt{print}, sono trattate in dettaglio nella documentazione delle In corrispondenza alla famiglia di funzioni \func{printf} che si usano per l'output formattato, l'input formattato viene eseguito con le funzioni della famiglia \func{scanf}; fra queste le tre più importanti sono \funcd{scanf}, -\funcd{fscanf} e \funcd{sscanf}, i cui proprotipi sono: +\funcd{fscanf} e \funcd{sscanf}, i cui prototipi sono: \begin{functions} \headdecl{stdio.h} \funcdecl{int scanf(const char *format, ...)} Esegue una scansione di \file{stdin} cercando una corrispondenza di quanto letto con il @@ -1249,7 +1249,7 @@ scansione e conversione di quanto serve direttamente con una delle funzioni di conversione delle stringhe; se invece il formato è più complesso diventa più facile utilizzare uno strumento come \cmd{flex}\footnote{il programma \cmd{flex}, è una implementazione libera di \cmd{lex} un generatore di - analizzatori lessicali, per i dettagli si può fare riferimento al manuale + analizzatori lessicali. Per i dettagli si può fare riferimento al manuale \cite{flex}.} per generare un analizzatore lessicale o il \cmd{bison}\footnote{il programma \cmd{bison} è un clone del generatore di parser \cmd{yacc}, maggiori dettagli possono essere trovati nel relativo