Función de biblioteca C - clearr ()

Descripción

La función de la biblioteca C void clearerr(FILE *stream) borra los indicadores de final de archivo y de error para la secuencia dada.

Declaración

A continuación se muestra la declaración de la función clearr ().

void clearerr(FILE *stream)

Parámetros

  • stream - Este es el puntero a un objeto FILE que identifica la secuencia.

Valor devuelto

Esto no debería fallar y no establecer la variable externa errno, pero en caso de que detecte que su argumento no es un flujo válido, debe devolver -1 y establecer errno en EBADF.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Asumiendo que tenemos un archivo de texto file.txt, que es un archivo vacío, compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado porque intentamos leer un archivo que abrimos en modo de solo escritura.

Error reading from file "file.txt"