Clearerr

ceer
void clearerr(FILE *stream);
<justify>Funkcja kasuje znaczniki końca pliku (EOF) oraz błędu dla strumienia stream. Jest to jedyny możliwy sposób na usunięcie wspominanych znaczników. W przypadku wystąpienia błędu, można użyć funkcji Perror, by zorientować się, jaki błąd wystąpił.</justify>

Przykład

#include <stdio.h>
 
int main (int argc, char** argv)
{
  FILE * pFile;
  pFile = fopen("plik.txt","r");
  if ( !pFile) perror ("Błąd podczas otwierania pliku");
  else
  {
    fputc ('x',pFile);
    if ( ferror (pFile) )
    {
       printf ("Błąd podczas zapisu do pliku 'plik.txt'\n");
       clearerr (pFile);
    }
    fgetc (pFile);
    if ( !ferror (pFile) )
      printf ("Brak błędów podczas odczytywania pliku 'plik.txt'\n"); 
    fclose (pFile);
  }
  return 0;
}
<justify>Przykładowy program otwiera do odczytu istniejący plik o nazwie 'plik.txt'. Następnie, próba zapisu do tego pliku kończy się spowodowaniem błędu wejścia/wyjścia (I/O) i wyświetleniem treści błędu. Błąd ten jest jednak czyszczony za pomocą funkcji <font color="gray">crearerr()</span>, dlatego drugie sprawdzenie obecności błędu nie wykaże żadnych nieprawidłowości.</justify>

Funkcja da na wyjściu:

<font color="gray">Błąd podczas zapisu do pliku 'plik.txt' Brak błędów podczas odczytywania pliku 'plik.txt'</span>

Zobacz też:

0 komentarzy