\param{size} caratteri.
\end{prototype}
-La parte più complessa di queste funzioni è il formato della variabile
-\param{format} che indica le conversioni da fare ed il numero di
-parametri che dovranno essere specificati a seguire.
-
+La parte più complessa di queste funzioni è il formato della stringa
+\param{format} che indica le conversioni da fare, da cui poi deriva il numero
+dei parametri che dovranno essere passati a seguire. La stringa è costituita
+da caratteri normali (tutti eccetto \texttt{\%}), che vengono passati
+invariati all'output, e da direttive di conversione, il cui formato è sempre
+del tipo:
+\begin{center}
+\begin{verbatim}
+% [n. parametro $] [flag] [larghezza] [. precisione] [tipo] conversione
+\end{verbatim}
+\end{center}
+in cui devono essere sempre presenti il carattere \texttt{\%}, che introduce
+la direttiva, ed uno degli specificatori di conversione (riportatati in \ntab)
+che la conclude; gli altri valori, indicati fra parentesi, sono opzionali.
+\begin{table}[htb]
+ \centering
+ \begin{tabular}[c]{|l|p{10cm}|}
+ \hline
+ \textbf{Valore} & \textbf{Significato} \\
+ \hline
+ \hline
+ \cmd{\%d} & Stampa un numero intero in formato decimale
+ con segno\\
+ \cmd{\%i} & Identico a \cmd{\%i} in output, \\
+ \cmd{\%o} & Stampa un numero intero come ottale\\
+ \cmd{\%u} & Stampa un numero intero in formato decimale senza
+ segno \\
+ \cmd{\%x}, \cmd{\%X} & Stampano un intero in formato esadecimale,
+ rispettivamente con lettere minuscole e maiuscole. \\
+ \cmd{\%f} & Stampa un numero in virgola mobile con la notazione
+ a virgola fissa \\
+ \cmd{\%e}, \cmd{\%E} & Stampano un numero in virgola mobile con la notazione
+ esponenziale, rispettivamente con lettere minuscole
+ e maiuscole. \\
+ \cmd{\%g}, \cmd{\%G} & Stampano un numero in virgola mobile con la notazione
+ più appropriate delle due precedenti,
+ rispettivamente con lettere minuscole e maiuscole. \\
+ \cmd{\%a}, \cmd{\%A} & Stampano un numero in virgola mobile in notazione
+ esadecimale frazionaria\\
+ \cmd{\%c} & Stampa un carattere singolo\\
+ \cmd{\%s} & Stampa una stringa \\
+ \cmd{\%p} & Stampa il valore di un puntatore\\
+ \cmd{\%n} & Prende il numero di caratteri stampati finora\\
+ \hline
+ \end{tabular}
+ \caption{Valori possibili per gli specificatori di conversione in una
+ stringa di formato per l'output.}
+ \label{tab:file_format_spec}
+\end{table}
un numero di caratteri (ad esempio in VMS può essere rappresentata come
numero di record, e offset rispetto al record corrente).
-Tutto questo comporta la presenza di diverse funzioni che seguono
+Tutto questo comporta la presenza di diverse funzioni che eseguono
sostanzialmente le stesse operazioni, ma usano parametri di tipo
diverso. Le funzioni tradizionali usate per il riposizionamento della
posizione in uno stream sono:
visti in \secref{sec:file_lseek}. La funzione restituisce 0 in caso di
successo e -1 in caso di errore.
-Per leggere la posizione corrente invece la funzione \func{ftell}, il
+Per leggere la posizione corrente si usa invece la funzione \func{ftell}, il
cui prototipo è:
\begin{prototype}{stdio.h}{long ftell(FILE *stream)}
Legge la posizione attuale nello stream.