Ominide 7993 punti

File


Nel linguaggio C le operazioni di input e output sono gestite come operazioni su stream di dati (flusso di dati).
Uno stream di dati viene gestito in modo uniforme con l’astrazione file, sia con device fisici che con dati su memoria di massa. L’astrazione dei file permette di gestire le operazioni senza considerare le caratteristiche fisiche dei device con cui sono effettuate.

Possono esserci due forme di stream:
- Stream di dati testuali: sequenza ordinata di caratteri organizzati in righe terminate da \n
- Stream di dati binari: sequenza di caratteri
Questi due stream vengono letti come equivalenti su sistemi Unix, su altre piattaforme invece lo stream testuale gestisce in modo trasparente la conversione dei caratteri speciali inseriti in un file di testo.
La struttura dei dati di uno stream è chiamata file, che non rappresenta per forza un file su memoria di massa.
Le dichiarazioni di tipo file e prototipi di I/O sono definiti in stdio.h.
Il tipo di dato file è una struttura (identificatore dichiarato usando typedef). Questa struttura contiene una lista di campi che permette le operazioni di apertura, chiusura, lettura, scrittura dei file.

La struttura interna dipende dall’implementazione. Si dovrebbero usare le funzioni di libreria fornite, senza accedere direttamente ai campi interni della struttura. Le funzioni che usano i file hanno come argomenti dei puntatori alla struttura file.
Ci sono tre stream standard aperti di default in un programma in esecuzione :
- Standard input: stdin da tastiera. È uno stream aperto, viene utilizzato solo in lettura.
- Standard output: stdout da monitor. Per stampare messaggi di errore.
- Standard error: stderr da monitor. Per stampare messaggi di errore.
Queste tre variabili sono di tipo puntatore alla struttura file.
Stdout e stderr possono essere rediretti separatamente, permettendo di distinguere l’output dai messaggi di errore.
La libreria stdio, oltre alla definizione di file, contiene diverse funzioni per poter lavorare con stream di dati
- Funzioni per apertura e chiusura di uno stream
- Funzioni per la scrittura di dati
- Funzioni per lettura di dati
- Funzione per sincronizzazione di uno stream di output con device associato: fflush()
- Funzione di posizionamento all’interno del file: ftell(), fseek(), fgetpos(), rewind()
- Funzioni per gestione di errori: ferror(), perror(), feof(), clearerr()
Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Potrebbe Interessarti
×
Registrati via email