Nel seguito, per quanto detto sopra, si fara' riferimento alle operazioni
di I/O effettuate su files estendendo queste operazioni anche alle
periferiche, purche' sia le periferiche che le operazioni siano gestite
correttamente dal sistema operativo.
Per potere effettuare qualsiasi operazione di I/O su file (es: lettura, scrittura, posizionamento, ...) e' necessario aprire il file al trattamento dei dati. Una volta terminate le operazioni di I/O e' necessario chiudere il file precedentemente aperto. Tipicamente questa operazione avviene al termine del programma, oppure al termine "logico" di macro-operazione (es: salvataggio di dati su un file: apro il file, scrivo le informazioni, chiudo il file).
L'apertura di un file ritorna un valore di tipo puntatore a FILE
(FILE e' una struttura definita in stdio.h) e costituisce
lo stream che deve essere passato come argomento nelle funzioni
di I/O da chiamare successivamente.
L'apertura di un file ritorna il valore NULL in caso di fallimento.
Ogni programma C ha a disposizione 3 file aperti:
stdin | Definisce il flusso di input dei dati. Tipicamente il flusso di input proviene dalla tastiera, ma puo' anche provenire da un file rediretto in input con il carattere di redirezione <, oppure puo' provenire dall'output sullo stdout di un altro programma e collegato in pipe con il carattere | (es: ls | more), oppure puo' essere presente nello script di esecuzione se l'input del programma viene opportunamente rediretto con i caratteri << oppure con <<- | |
stdout | Definisce il flusso di output dei dati. Tipicamente i dati in output su stdout vengono emessi sullo schermo del terminale, del PC, o nella finestra di esecuzione dell'applicazione. In alternativa, l'output del programma puo' costituire l'input di un altro programma collegato tramite pipe |, oppure puo' essere rediretto su un file tramite > (sovrascrittura dei dati) oppure >> (append dell'output). | |
stderr | Definisce il flusso di output dei messaggi di errore. Puo' essere lo schermo del terminale, del PC, o della finestra di dove sta' girando l'applicazione. Con i sistemi operativi MS-DOS (e Windows) non e' possibile alcuna redirezione. Con i sitemi Unix-like (es. Linux), e' possibile redirigere lo stderr su file con 2> o immetterlo sullo stdout con 2>&1 |
Per utilizzare la libreria standard di I/O e' necessario includere l'header stdio.h nel file sorgente:
#include <stdio.h>
fopen(), fdopen(), freopen()
popen(), pclose()
tmpfile()
fclose()
setbuf(), setbuffer(), setlinebuf(), setvbuf()
clearerr(), feof(), ferror(), fileno()
fseek(), rewind(), ftell(), fgetpos(), fsetpos()
fflush()
fgetc(), getc(), getchar(), ungetc()
fputc(), putc(), putchar()
fgets(), gets()
fputs(), puts()
scanf() fscanf(), sscanf(), vscanf(), vfscanf(), vsscanf()
printf(), fprintf(), sprintf(), snprintf(), vprintf(), vfprintf(), vsprinf(). vsnprintf()
fread()
fwrite()
Indice linguaggio C |
Indice librerie C |
Umberto Zappi Home Page |