| Defined in header <cerrno> | ||
|---|---|---|
#define errno /*implementation-defined*/ |
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
#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:
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.