Clearerr
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 crearerr(), dlatego drugie sprawdzenie obecności błędu nie wykaże żadnych nieprawidłowości.</justify>
Funkcja da na wyjściu:
Błąd podczas zapisu do pliku 'plik.txt'
Brak błędów podczas odczytywania pliku 'plik.txt'
Zobacz też: