INTRODUZIONE ALLA PROGRAMMAZIONE IN C



Streams



Le streams costituiscono un mezzo efficace e flessibile per gestire l'I/O (per lettura e scrittura di dati). Una stream e' un file o un device fisico (es. printer o monitor) che viene manipolato con un puntatore alla stream. Esiste una struttura di dati interna al C, FILE, che rappresenta tutte le stream ed e' definita nel file stdio.h. E' sufficiente fare riferimento alla struttura FILE nei programmi C quando si realizza l'I/O utilizzando le stream. All'interno del programma si deve solamente dichiarare una variabile che punti a tale tipo (non e' necessario conoscere alcuna ulteriore specificazione relativa a questa definizione). Si deve aprire una stream prima di eseguire l'I/O, quindi accedervi e poi richiuderla. Le streams di I/O sono bufferizzate: questo significa che ogni volta viene letto da un file o scritto su di esso un "pezzo" di dimensioni stabilite attraverso alcune aree temporanee di immagazzinamento (e' importante notare che il file puntatore punta effettivamente a questo buffer). Questo metodo rende efficiente l'I/O, ma e' necessario fare attenzione: i dati scritti in un buffer non compaiono nel file (o nel device) finche' il buffer non e' riempito o scaricato ("\n" serve a questo). Qualsiasi uscita anormale del programma puo' causare problemi.