FREOPEN |
Libère et ouvre |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
FILE *freopen(const char *nomfichier,const char *mode,FILE *ptrfichier) |
Paramètres
Nom | Description | |
---|---|---|
nomfichier | Ce paramètre permet d'indiquer le nom du fichier | |
mode | Ce paramètre permet d'indiquer le mode d'ouverture, pouvant être combiné, du fichier : | |
Valeur | Description | |
a | Cette valeur indique une création en ajoutant à la fin du fichier | |
b | Cette valeur indique une ouverture en mode binaire | |
a+ | Cette valeur indique une création en ajoutant à la fin du fichier existant | |
r | Cette valeur indique un mode d'accès en lecture | |
r+ | Cette valeur indique un mode d'accès en lecture d'un fichier existant | |
t | Cette valeur indique une ouverture en mode texte | |
w | Cette valeur indique un mode d'accès en écriture | |
w+ | Cette valeur indique un mode d'accès en écriture et écrase le fichier existant | |
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction ferme le fichier et réouvre un fichier en lui affectant un pointeur.
Remarques
- La fonction freopen() associe un flux de données existant à un fichier différent. Le nom du nouveau fichier est pointé par nomfichier, le mode d'accès est pointé par mode et le flux de données à réaffecter est pointé par ptrfichier. La chaîne de caractères de mode utilise le même format que la fonction fopen().
- Lorsqu'elle est appelé, la fonction freopen() essaie d'abord de fermer un fichier pouvant actuellement être associé à un flux de données. Cependant, si la tentative de fermeture du fichier échoue, la fonction freopen() continue toujours d'ouvrir l'autre fichier.
- La fonction freopen() renvoie un pointeur à diffuser en cas de succès et un pointeur null dans le cas contraire.
- L'utilisation principale de la fonction freopen() est de rediriger les fichiers définis par le système stdin (entrée standard), stdout (sortie standard) et stderr (sortie d'erreur standard) vers un autre fichier.
Exemple
Voici un exemple montrant une utilisation plus classique de cette fonction :
Essayer maintenant !
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
-
- int main()
- {
- FILE * Handle = fopen("monfichier.txt", "w+");
- if(Handle != NULL) {
- FILE * Handle2;
- fprintf(Handle,"Gladir.com");
- std::cout << "Le fichier a été écrit avec succès" << std::endl;
- Handle2 = freopen("monfichier.txt", "w+", Handle);
- if(Handle != NULL) {
- fprintf(Handle2,"Gladir.ca");
- std::cout << "Le fichier a été réouvert avec succès" << std::endl;
- /* Traitement ... */
- fclose(Handle);
- }
- }
- return 0;
- }
on obtiendra le résultat suivant dans le fichier «monfichier.txt» :
Gladir.caVoir également
Langage de programmation - C++ - Référence de procédures et fonctions - fclose
Langage de programmation - C++ - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - freopen
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 112.
Dernière mise à jour : Lundi, le 3 août 2015