Descrição
A função da biblioteca C void clearerr(FILE *stream) limpa os indicadores de fim de arquivo e erro para o fluxo fornecido.
Declaração
A seguir está a declaração da função clearerr ().
void clearerr(FILE *stream)
Parâmetros
Valor de retorno
Isso não deve falhar e não definir a variável externa errno, mas no caso de detectar que seu argumento não é um fluxo válido, ele deve retornar -1 e definir errno como EBADF.
Exemplo
O exemplo a seguir mostra o uso da função 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);
}
Supondo que temos um arquivo de texto file.txt, que é um arquivo vazio, vamos compilar e executar o programa acima, isso produzirá o seguinte resultado porque tentamos ler um arquivo que abrimos no modo somente escrita.
Error reading from file "file.txt"