vale1411
Genius
3 min. di lettura
Vota

Concetti Chiave

  • In C, input e output sono gestiti come stream di dati, che astraggono le operazioni su file senza considerare il device fisico.
  • Due tipi di stream esistono: testuali, che gestiscono caratteri in righe, e binari, semplici sequenze di caratteri.
  • La struttura di uno stream è nota come file, definita in stdio.h, e non sempre rappresenta un file fisico.
  • Tre stream standard sono sempre aperti: stdin per input, stdout per output, e stderr per errori.
  • La libreria stdio fornisce funzioni per gestire stream, come apertura, chiusura, lettura, scrittura e gestione degli errori.

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()

Domande da interrogazione

  1. Quali sono le due forme di stream di dati nel linguaggio C?
  2. Nel linguaggio C, ci sono due forme di stream di dati: stream di dati testuali e stream di dati binari. Gli stream testuali sono sequenze ordinate di caratteri organizzati in righe terminate da \n, mentre gli stream binari sono semplicemente sequenze di caratteri.

  3. Qual è il ruolo della libreria stdio.h nella gestione dei file in C?
  4. La libreria stdio.h definisce le dichiarazioni di tipo file e i prototipi di I/O. Contiene anche diverse funzioni per lavorare con stream di dati, come l'apertura e chiusura di stream, la lettura e scrittura di dati, e la gestione degli errori.

  5. Quali sono i tre stream standard aperti di default in un programma C e quali sono le loro funzioni?
  6. I tre stream standard aperti di default in un programma C sono: standard input (stdin) per la lettura da tastiera, standard output (stdout) per stampare messaggi, e standard error (stderr) per stampare messaggi di errore. Questi stream sono puntatori alla struttura file e possono essere rediretti separatamente.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community