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
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"