Linguaggio C - fopen(), fdopen(), freopen()

NOME

fopen(), fdopen(), freopen() - apre uno stream

SINOPSI

#include <stdio.h> FILE *fopen(const char *path, const char *mode); FILE *fdopen(int fildes, const char *mode); FILE *freopen(const char *path, const char *mode, FILE *stream);

DESCRIZIONE

La funzione fopen() apre il file path associandolo ad uno stream.

Il file path viene predisposto per le operazioni di I/O come e' indicato da mode.

L'argomento mode puo' valere:
"r" Apre un file di testo per la lettura. Lo stream e' posizionato all'inizio del file.
"r+" Apre un file di testo per la lettura e scrittura. Lo stream e' posizionato all'inizio del file.
"w" Apre un file di testo per la scrittura. Il file viene creato se non esiste, altrimenti viene troncato (forza la lunghezza a 0). Lo stream e' posizionato all'inizio del file.
"w+" Apre un file di testo per la lettura e scrittura. Il file viene creato se non esiste, altrimenti viene troncato (forza la lunghezza a 0). Lo stream e' posizionato all'inizio del file.
"a" Apre un file di testo per la scrittura. Il file viene creato se non esiste. Lo stream e' posizionato alla fine file.
"a+" Apre un file di testo per la lettura e scrittura. Il file viene creato se non esiste. Lo stream e' posizionato alla fine file.

Inoltre mode puo' comprendere anche la lettera b come secondo o terzo carattere.
In tal caso il file e' considerato binario.

Tra una operazione di lettura ed una di scrittura e viceversa, occorre chiamare la funzione fflush() o fseek().

La funzione fdopen() associa uno stream al file descriptor filedes. In tal caso mode dello stream deve essere compatibile con mode del file descriptor.
In questa situazione, mode valorizzato con "w" o con "w+" non causa il troncamento del file.

La funzione freopen() apre il file path e lo associa allo stream puntato da stream. Lo stream originale, se esistente, viene chiuso.
L'uso principale di freopen() e' quello di cambiare il file associato ad uno stream standard (stdin, stdout o stderr).

VALORE DI RITORNO

Le funzioni fopen(), fdopen() e freopen(), ritornano in caso di successo, lo stream da impiegare nelle successive chiamate alle funzioni di I/O.
In caso di fallimento viene ritornato NULL e la variabile errno contiene il codice di errore.

CONFORME A

Funzioni fopen() e freopen(): ANSI C3.159-1989 ('ANSI C')
Funzione fdopen(): IEEE Std1003.1-1988 ('POSIX 1')

VEDI ANCHE

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(), vsprintf(), vsnprintf() fread() fwrite()


Indice-C Indice linguaggio C
Indice librerie Indice librerie C
At Home Umberto Zappi Home Page
Indice funzioni Indice funzioni C