##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# Error numbers

From cppreference.com
< c‎ | error

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 (the implementation may define more, as long as they begin with 'E' followed by digits or uppercase letters)

Defined in header `<errno.h>`
EDOM | Mathematics argument out of domain of function (macro constant)
EILSEQ (C99) | Illegal byte sequence (macro constant)
ERANGE | Result too large (macro constant)

### [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

Run this code

    #include <stdio.h>
    #include <math.h>
    #include <errno.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] See also

errno | macro which expands to POSIX-compatible thread-local error number variable (macro variable) [edit]
perror | displays a character string corresponding of the current error to stderr (function) [edit]
strerror | returns a text version of a given error code (function) [edit]
C++ documentation for Error numbers

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/error/errno_macros&oldid=71617"