clearerr  função

A função clearerr limpa o indicador de EOF e o indicador de erro do fluxo.

Protótipo

void clearerr (FILE * fluxo);

Parâmetros

fluxo - Fluxo a ter o indicador de EOF e o indicador de erro limpo.

Valor de retorno

Nenhum.

Exemplo

Esse programa abre um arquivo em modo somente escrita e tenta ler dele utilizando a função fgetc. Naturalmente, a leitura falha. O indicador de erro é setado e pode ser verificado utilizando ferror. Após limparmos o indicador de erro utilizando clearerr, o if não é executado novamente, pois ferror agora retorna falso; apenas o primeiro if entra em ação.

#include <stdio.h>

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

    arquivo = fopen("arquivo.txt", "w");
    if(arquivo == NULL) {
        fprintf(stdderr, "Erro ao abrir o arquivo.txt\n");
        return 1;
    }

    c = fgetc(fp);
    if(ferror(arquivo)) {
        fprintf(stderr, "Erro ao ler do arquivo.txt\n");
    }

    /* limpa o indicador de erro */
    clearerr(arquivo);

    if(ferror(arquivo)) {
        fprintf(stderr, "Erro ao ler do arquivo.txt\n");
    }

    fclose(arquivo);

    return 0;
}
Veja também

ferror função