Fonctions de la bibliothèque C -freopen()

Bibliothèque standard C - <stdio.h>

Description

Fonctions de la bibliothèque CFILE *freopen(const char *filename, const char *mode, FILE *stream)Associe un nouveau nom de fichierfilenameavec le flux ouvert donné,streamet ferme l'ancien fichier dans le flux.

Déclaration

Voici la déclaration de la fonction freopen().

FILE *freopen(const char *filename, const char *mode, FILE *stream)

Paramètre

  • filename-- Il s'agit de la chaîne C contenant le nom du fichier à ouvrir.
  • mode-- Il s'agit de la chaîne C contenant le mode d'accès au fichier, avec les modes comme suit :
ModeDescription
"r" Ouvre un fichier en lecture. Le fichier doit exister.
"w" Crée un fichier vide pour l'écriture. Si le nom du fichier est identique à celui d'un fichier existant, le contenu du fichier existant est supprimé, et le fichier est traité comme un nouveau fichier vide.
"a" Ajoute à 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+" Ouvre un fichier pour mise à jour, ce qui permet de le lire et d'y écrire. Le fichier doit exister.
"w+" Crée un fichier vide pour la lecture et l'écriture.
"a+" Ouvre un fichier pour la lecture et l'ajout.
  • stream-- Il s'agit d'un pointeur vers un objet FILE qui identifie le flux à rouvrir.

Valeur de retour

Si le fichier est ouvert avec succès, la fonction renvoie un pointeur vers l'objet qui identifie le flux. Sinon, elle renvoie un pointeur null.

Exemple

L'exemple suivant montre l'utilisation de la fonction freopen().

#include <stdio.h>

int main ()
{
   FILE *fp;

   printf("该文本重定向到 stdout\n");

   fp = freopen("file.txt", "w+", stdout);

   printf("该文本重定向到 file.txt\n");

   fclose(fp);
   
   return(0);
}

Compilons et exécutons le programme ci-dessus, qui enverra les lignes suivantes vers la sortie standard STDOUT, car initialement nous n'avons pas ouvert la sortie standard :

该文本重定向到 stdout

Lors de l'appel defreopen()Après cela, il associe la sortie standard STDOUT au fichier,file.txtet peu importe ce que nous écrivons dans la sortie standard STDOUT, cela sera écrit dans file.txt, donc le fichier file.txt aura le contenu suivant.

该文本重定向到 file.txt

Utilisons maintenant 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);
}

Bibliothèque standard C - <stdio.h>

autres extensions