Fonction de bibliothèque C - clearerr ()

La description

La fonction de bibliothèque C void clearerr(FILE *stream) efface les indicateurs de fin de fichier et d'erreur pour le flux donné.

Déclaration

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

void clearerr(FILE *stream)

Paramètres

  • stream - Il s'agit du pointeur vers un objet FILE qui identifie le flux.

Valeur de retour

Cela ne devrait pas échouer et ne pas définir la variable externe errno, mais au cas où il détecte que son argument n'est pas un flux valide, il doit renvoyer -1 et définir errno sur EBADF.

Exemple

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

#include <stdio.h>

int main () {
   FILE *fp;
   char c;

   fp = fopen("file.txt", "w");

   c = fgetc(fp);
   if( ferror(fp) ) {
      printf("Error in reading from file : file.txt\n");
   }
   clearerr(fp);
   
   if( ferror(fp) ) {
      printf("Error in reading from file : file.txt\n");
   }
   fclose(fp);

   return(0);
}

En supposant que nous ayons un fichier texte file.txt, qui est un fichier vide, compilons et exécutons le programme ci-dessus, cela produira le résultat suivant car nous essayons de lire un fichier que nous avons ouvert en écriture seule.

Error reading from file "file.txt"