====== ferror() ======
''ferror()'' ist in der ''[[c:lib:stdio:start|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
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
#include
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 =====
[[:|stdio]]: [[fopen()]], [[fclose()]], [[clearerr()]], [[feof()]], [[perror()]]