English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bibliothèque standard C - <stdio.h>
Fonction de bibliothèque C FILE *freopen(const char *filename, const char *mode, FILE *stream) Affecter un nouveau nom de fichier filename Avec le flux ouvert donné flux Lier, fermer le fichier ancien dans le flux.
Voici la déclaration de la fonction freopen().
FILE *freopen(const char *filename, const char *mode, FILE *stream)
Mode | Description |
---|---|
"r" | Ouvrir un fichier pour lecture. Le fichier doit exister. |
"w" | Créer un fichier vide pour écriture. Si le nom du fichier est identique à celui d'un fichier existant, le contenu de ce fichier sera supprimé et le fichier sera considéré comme un fichier vide nouveau. |
"a" | Ajouter à un fichier. Les opérations d'écriture ajoutent des données à la fin du fichier. Si le fichier n'existe pas, il est créé. |
"r+" | Ouvrir un fichier pour mise à jour, lecture et écriture. Le fichier doit exister. |
"w+" | Créer un fichier vide pour lecture et écriture. |
"a+" | Ouvrir un fichier pour lecture et ajout. |
Si le fichier est ouvert avec succès, la fonction retourne un pointeur vers l'objet utilisé pour identifier le flux. Sinon, elle retourne un pointeur NULL.
L'exemple suivant montre l'utilisation de la fonction freopen().
#include <stdio.h> int main () { FILE *fp; printf("Ce texte est redirigé vers stdout\n"); fp = freopen("file.txt", "w+", stdout); printf("Ce texte est redirigé vers file.txt\n"); fclose(fp); return(0); }
Compilons et exécutons le programme suivant, ce qui enverra les lignes suivantes à la sortie standard STDOUT, car nous n'avons pas ouvert la sortie standard au départ :
Ce texte est redirigé vers stdout
En appelant freopen() Ensuite, il associera la sortie standard STDOUT au fichier file.txtTous les éléments écrits sur la sortie standard STDOUT seront également écrits dans file.txt, donc le fichier file.txt contiendra ce qui suit :
Ce texte est redirigé vers file.txt
Maintenant, utilisons le programme suivant pour afficher le contenu du fichier ci-dessus :
#include <stdio.h> int main () { FILE *fp; int c; fp = fopen("file.txt","r"); while(1) { c = fgetc(fp); if( feof(fp) ) { break ; } printf("%c", c); } fclose(fp); return(0); }