Defined in header <cerrno> | ||||
---|---|---|---|---|
|
errno
is a preprocessor macro used for error indication.
It expands to a static modifiable lvalue of type int . | (until C++11) |
It expands to a thread-local modifiable lvalue of type int . | (since C++11) |
Several standard library functions indicate errors by writing positive integers to errno
. Typically, the value of errno
is set to one of the error codes, listed in <cerrno>
as macro constants that begin with the letter E
, followed by uppercase letters or digits.
The value of errno
is 0
at program startup, and although library functions are allowed to write positive integers to errno
whether or not an error occurred, library functions never store 0
in errno
.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <iostream> #include <cmath> #include <cerrno> #include <cstring> #include <clocale> int main() { double not_a_number = std:: log (-1.0); if ( errno == EDOM) { std::cout << "log(-1) failed: " << std:: strerror ( errno ) << '\n' ; std:: setlocale (LC_MESSAGES, "de_DE.utf8" ); std::cout << "Or, in German, " << std:: strerror ( errno ) << '\n' ; } } |
Possible output:
1 2 | log (-1) failed: Numerical argument out of domain Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches |
See also
macros for standard POSIX-compatible error conditions (macro constant) | |
displays a character string corresponding of the current error to stderr (function) | |
returns a text version of a given error code (function) |
Please login to continue.