====== 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()]]