1. errno ist KEINE Funktion. Was es ist, ist nicht vorgegeben, aber es ist ganz sicher keine Funktion, denn im Standard steht geschrieben:
Lvalue -> nix funktion.ISO/IEC 9899:1999 hat geschrieben:... and
errno
which expands to a modifiable lvalue ...
2. errno.h enthält nicht nur errno, sondern auch noch mindestens zwei/drei Makros. Allerdings fügt jede Implementierung noch einen haufen andere Codes dazu, ich habe exemplarisch POSIX und MSVC genannt.
3. Hinzugefügt:
4. Hinweis zu perror() eingefügt, link zu perror() auch zu "stdio.h" hinzugefügtDer 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.
5. Beispiel geändert: strerror() aufruf hinzugefügt