strerror()

strerror ist definiert in der string, die in C über string.h, bzw. in C++ über cstring eingebunden wird.

Funktion

Die Funktion strerror nimmt einen Fehlercode der Standardbibliothek, den man mit errno erhält und liefert eine dazu passende kurze Fehlerbeschreibung zurück.

Signatur

char * strerror ( int errnum );

errnum: Fehlernummer

Return value: String mit Fehlerbeschreibung

Fehlerquellen

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.

Beispiel

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

siehe auch