strerror ist definiert in der string
, die in C über string.h
, bzw. in C++ über cstring
eingebunden wird.
Die Funktion strerror nimmt einen Fehlercode der Standardbibliothek, den man mit errno erhält und liefert eine dazu passende kurze Fehlerbeschreibung zurück.
char * strerror ( int errnum );
errnum: Fehlernummer
Return value: String mit Fehlerbeschreibung
Der zurückgelieferte String ist in einem statischen Array gespeichert und sollte vom Programm nicht überschrieben werden. Der Inhalt des Strings auf den der Zeiger zeigt ändert sich beim nächsten Aufruf von strerror. Wenn man den Fehlerstring später noch braucht, sollte man ihn sich kopieren.
GCC: Es kann zu Speicherzugriffsfehlern kommen, wenn die Funktion über eine interne Definition akzeptiert wurde, das Programm also durchkompilierte, aber der string.h
nicht inkludiert wurde.
Code:
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> int main( void ) { FILE * file = fopen( "nicht-existierende-datei", "r" ); if( file ) fclose( file ); else printf( "Fehler: %s\n", strerror(errno) ); return EXIT_SUCCESS; }
Ausgabe:
Fehler: No such file or directory