errno ist definiert in der errno
, die in C über errno.h
, bzw. in C++ über cerrno
eingebunden wird.
errno ist in der Regel als Makro implementiert und gibt den Fehlercode der zuletzt gerufenen Standard-Library Funktion wieder. Grundsätlich kann man den Fehlercode auch in eigenen Funktionen setzen, üblicherweise haben andere Libraries jedoch eigene Methoden zur Fehlerbehandlung.
Das Macro bildet einen Integerausdruck. Der Wert 0 bedeutet, dass kein Fehler aufgetreten ist, allerdings wird der Wert nur beim Programmstart auf 0 gesetzt. Aufrufe der Standard-Library belassen den Wert unangetastet, es sei denn sie setzen ihn auf einen neuen Fehlerwert.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> int main( void ) { FILE * file = fopen( "nicht-existierende-datei", "r" ); if( file ) fclose( file ); else printf( "Fehlercode %d, Fehlermeldung:%s\n", errno, strerror(errno) ); return EXIT_SUCCESS; }