ferror()

ferror() ist in der stdio definiert, die in C über stdio.h, bzw in C++ über cstdio eingebunden wird.

Funktion

ferror() prüft, ob an einem Stream noch Daten anliegen oder der End-Of-File-Indikator gesetzt ist.

Signatur

#include <stdio.h>
int ferror( FILE* file);

file: Zeiger auf geöffnete Datei/Stream, der geprüft werden soll, ob der Fehler-Indikator gesetzt ist

Return Value: 0, falls kein Fehler anliegt oder im Fehlerfall ein Wert ungleich 0.

Fehlerquellen

-

Beispiel

#include <stdio.h>
#include <stdlib.h>
 
int main (void)
{
  FILE *file = fopen("testfile.txt", "r");
 
  if( file )
  {
    clearerr( file );
    fprintf( file, "Hallo Welt!" );
    if( ferror( file ) )
      printf( "Der Fehlerindikator wurde gesetzt.\n" );
  }
 
  return EXIT_SUCCESS;
}

Ausgabe

Nehmen wir an, im gleichen Verzeichnis liegt die Datei 'testfile.txt', so erhalten wir folgendes Ergebnis:

Der Fehlerindikator wurde gesetzt.

Vor fprintf() löschen wir den Fehlerindikator des Streams mit Hilfe von clearerr(). Beim Aufruf von fprintf() können wir also davon ausgehen, dass kein Fehler vorliegt.
Nach dem Schreibvorgang fragen wir den Fehlerspeicher des Streams ab und stellen fest, dass ein Fehler aufgetreten ist - und der kann nur bei fprintf() aufgetreten sein.

Hier wurde eine Datei zum Lesen geöffnet („r“ bei fopen()) und anschließend wurde versucht zu schreiben.

Siehe auch