Função da biblioteca C - clearerr ()

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

  • stream - Este é o ponteiro para um objeto FILE que identifica o fluxo.

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"