Error numbers - cppreference.com (original) (raw)
Each of the macros defined in <errno.h> expands to an integer constant expression with type int and with a unique positive value. The following constants are defined by ISO C. The implementation may define more, as long as they begin with 'E' followed by digits or uppercase letters.
[edit] Notes
Many additional errno constants are defined by POSIX and by the C++ standard library, and individual implementations may define even more, e.g. errno(3) on Linux or intro(2) on BSD and OS X.
[edit] Example
#include <errno.h> #include <math.h> #include <stdio.h> #include <string.h> int main(void) { errno = 0; printf("log(-1.0) = %f\n", log(-1.0)); printf("%s\n\n", strerror(errno)); errno = 0; printf("log(0.0) = %f\n", log(0.0)); printf("%s\n", strerror(errno)); }
Possible output:
log(-1.0) = nan Numerical argument out of domain log(0.0) = -inf Numerical result out of range
[edit] References
C23 standard (ISO/IEC 9899:2024):
7.5/2 Errors <errno.h> (p: TBD)
C17 standard (ISO/IEC 9899:2018):
7.5/2 Errors <errno.h> (p: TBD)
C11 standard (ISO/IEC 9899:2011):
7.5/2 Errors <errno.h> (p: 205)
C99 standard (ISO/IEC 9899:1999):
7.5/2 Errors <errno.h> (p: 186)
C89/C90 standard (ISO/IEC 9899:1990):
4.1.3 Errors <errno.h>