Controllo dei flussi
fopen restituisce l'indirizzo di un oggetto di tipo FILE. Si utilizza questo indirizzo come argomento stream in diverse funzioni di libreria per eseguire diverse operazioni in un file aperto. Per un flusso di byte, qualsiasi input è espresso come se ogni carattere venga letto chiamando fgetc e tutto l'output è espresso come se ogni carattere sia scritto chiamando fputc. Per un flusso di caratteri wide, qualsiasi input è espresso come se ogni carattere venga letto chiamando fgetwc e tutto l'output è espresso come se ogni carattere sia scritto chiamando fputwc.
È possibile chiudere un file chiamando fclose, dopo questa operazione l'indirizzo dell'oggetto di FILE non sarà valido.
Un oggetto FILE memorizza lo stato di un flusso, tra cui:
Un indicatore di errore impostato ad un valore diverso da zero da una funzione che rileva un errore in lettura o in scrittura.
Un indicatore di fine file impostato ad un valore diverso da zero da una funzione che rileva la fine di un file in lettura.
Un indicatore di posizione specifica il byte successivo nel flusso da leggere o scrivere, se il file può supportare il posizionamento delle richieste.
Uno stato del flusso specifica se il flusso accetterà letture e/o scritture e se il flusso sia non associato, orientato ai byte, o orientato ai caratteri wide.
Uno stato di conversione mantiene lo stato di ogni carattere multibyte generalizzato parzialmente generato o assemblato, nonché ogni stato di spostamento per la sequenza di byte nel file).
Un buffer di file specifica l'indirizzo e la dimensione di un oggetto array che le funzioni di libreria possono utilizzare per migliorare le prestazioni delle operazioni di lettura e scrittura nel flusso.
Non alterare nessun valore memorizzato in un oggetto FILE o in un buffer di file designato per essere utilizzato con tale oggetto. Non è possibile copiare un oggetto di FILE e utilizzare in modo portabile l'indirizzo della copia come argomento di stream di una funzione di libreria.