Standard library header - cppreference.com (original) (raw)
This header was originally in the C standard library as <errno.h>.
This header is part of the error handling library.
[edit] Macros
| errno | macro which expands to POSIX-compatible thread-local error number variable(macro variable)[edit] |
|---|---|
| E2BIG(C++11) | Argument list too long (macro constant) |
| EACCES(C++11) | Permission denied (macro constant) |
| EADDRINUSE(C++11) | Address in use (macro constant) |
| EADDRNOTAVAIL(C++11) | Address not available (macro constant) |
| EAFNOSUPPORT(C++11) | Address family not supported (macro constant) |
| EAGAIN(C++11) | Resource unavailable, try again (macro constant) |
| EALREADY(C++11) | Connection already in progress (macro constant) |
| EBADF(C++11) | Bad file descriptor (macro constant) |
| EBADMSG(C++11) | Bad message (macro constant) |
| EBUSY(C++11) | Device or resource busy (macro constant) |
| ECANCELED(C++11) | Operation canceled (macro constant) |
| ECHILD(C++11) | No child processes (macro constant) |
| ECONNABORTED(C++11) | Connection aborted (macro constant) |
| ECONNREFUSED(C++11) | Connection refused (macro constant) |
| ECONNRESET(C++11) | Connection reset (macro constant) |
| EDEADLK(C++11) | Resource deadlock would occur (macro constant) |
| EDESTADDRREQ(C++11) | Destination address required (macro constant) |
| EDOM | Mathematics argument out of domain of function (macro constant) |
| EEXIST(C++11) | File exists (macro constant) |
| EFAULT(C++11) | Bad address (macro constant) |
| EFBIG(C++11) | File too large (macro constant) |
| EHOSTUNREACH(C++11) | Host is unreachable (macro constant) |
| EIDRM(C++11) | Identifier removed (macro constant) |
| EILSEQ | Illegal byte sequence (macro constant) |
| EINPROGRESS(C++11) | Operation in progress (macro constant) |
| EINTR(C++11) | Interrupted function (macro constant) |
| EINVAL(C++11) | Invalid argument (macro constant) |
| EIO(C++11) | I/O error (macro constant) |
| EISCONN(C++11) | Socket is connected (macro constant) |
| EISDIR(C++11) | Is a directory (macro constant) |
| ELOOP(C++11) | Too many levels of symbolic links (macro constant) |
| EMFILE(C++11) | File descriptor value too large (macro constant) |
| EMLINK(C++11) | Too many links (macro constant) |
| EMSGSIZE(C++11) | Message too large (macro constant) |
| ENAMETOOLONG(C++11) | Filename too long (macro constant) |
| ENETDOWN(C++11) | Network is down (macro constant) |
| ENETRESET(C++11) | Connection aborted by network (macro constant) |
| ENETUNREACH(C++11) | Network unreachable (macro constant) |
| ENFILE(C++11) | Too many files open in system (macro constant) |
| ENOBUFS(C++11) | No buffer space available (macro constant) |
| ENODATA(C++11) (deprecated in C++23) | No message is available on the STREAM head read queue (macro constant) |
| ENODEV(C++11) | No such device (macro constant) |
| ENOENT(C++11) | No such file or directory (macro constant) |
| ENOEXEC(C++11) | Executable file format error (macro constant) |
| ENOLCK(C++11) | No locks available (macro constant) |
| ENOLINK(C++11) | Link has been severed (macro constant) |
| ENOMEM(C++11) | Not enough space (macro constant) |
| ENOMSG(C++11) | No message of the desired type (macro constant) |
| ENOPROTOOPT(C++11) | Protocol not available (macro constant) |
| ENOSPC(C++11) | No space left on device (macro constant) |
| ENOSR(C++11) (deprecated in C++23) | No STREAM resources (macro constant) |
| ENOSTR(C++11) (deprecated in C++23) | Not a STREAM (macro constant) |
| ENOSYS(C++11) | Function not supported (macro constant) |
| ENOTCONN(C++11) | The socket is not connected (macro constant) |
| ENOTDIR(C++11) | Not a directory (macro constant) |
| ENOTEMPTY(C++11) | Directory not empty (macro constant) |
| ENOTRECOVERABLE(C++11) | State not recoverable (macro constant) |
| ENOTSOCK(C++11) | Not a socket (macro constant) |
| ENOTSUP(C++11) | Not supported (macro constant) |
| ENOTTY(C++11) | Inappropriate I/O control operation (macro constant) |
| ENXIO(C++11) | No such device or address (macro constant) |
| EOPNOTSUPP(C++11) | Operation not supported on socket (macro constant) |
| EOVERFLOW(C++11) | Value too large to be stored in data type (macro constant) |
| EOWNERDEAD(C++11) | Previous owner died (macro constant) |
| EPERM(C++11) | Operation not permitted (macro constant) |
| EPIPE(C++11) | Broken pipe (macro constant) |
| EPROTO(C++11) | Protocol error (macro constant) |
| EPROTONOSUPPORT(C++11) | Protocol not supported (macro constant) |
| EPROTOTYPE(C++11) | Protocol wrong type for socket (macro constant) |
| ERANGE | Result too large (macro constant) |
| EROFS(C++11) | Read-only file system (macro constant) |
| ESPIPE(C++11) | Invalid seek (macro constant) |
| ESRCH(C++11) | No such process (macro constant) |
| ETIME(C++11) (deprecated in C++23) | Stream ioctl() timeout (macro constant) |
| ETIMEDOUT(C++11) | Connection timed out (macro constant) |
| ETXTBSY(C++11) | Text file busy (macro constant) |
| EWOULDBLOCK(C++11) | Operation would block (macro constant) |
| EXDEV(C++11) | Cross-device link (macro constant) |
[edit] Notes
Although the header <cerrno> is based on the C standard library header <errno.h>, the majority of the macros defined by <cerrno> were adopted by C++ from the POSIX standard, rather than the C standard library.
[edit] Synopsis
#define errno /* see description / #define E2BIG / see description / // freestanding #define EACCES / see description / // freestanding #define EADDRINUSE / see description / // freestanding #define EADDRNOTAVAIL / see description / // freestanding #define EAFNOSUPPORT / see description / // freestanding #define EAGAIN / see description / // freestanding #define EALREADY / see description / // freestanding #define EBADF / see description / // freestanding #define EBADMSG / see description / // freestanding #define EBUSY / see description / // freestanding #define ECANCELED / see description / // freestanding #define ECHILD / see description / // freestanding #define ECONNABORTED / see description / // freestanding #define ECONNREFUSED / see description / // freestanding #define ECONNRESET / see description / // freestanding #define EDEADLK / see description / // freestanding #define EDESTADDRREQ / see description / // freestanding #define EDOM / see description / // freestanding #define EEXIST / see description / // freestanding #define EFAULT / see description / // freestanding #define EFBIG / see description / // freestanding #define EHOSTUNREACH / see description / // freestanding #define EIDRM / see description / // freestanding #define EILSEQ / see description / // freestanding #define EINPROGRESS / see description / // freestanding #define EINTR / see description / // freestanding #define EINVAL / see description / // freestanding #define EIO / see description / // freestanding #define EISCONN / see description / // freestanding #define EISDIR / see description / // freestanding #define ELOOP / see description / // freestanding #define EMFILE / see description / // freestanding #define EMLINK / see description / // freestanding #define EMSGSIZE / see description / // freestanding #define ENAMETOOLONG / see description / // freestanding #define ENETDOWN / see description / // freestanding #define ENETRESET / see description / // freestanding #define ENETUNREACH / see description / // freestanding #define ENFILE / see description / // freestanding #define ENOBUFS / see description / // freestanding #define ENODEV / see description / // freestanding #define ENOENT / see description / // freestanding #define ENOEXEC / see description / // freestanding #define ENOLCK / see description / // freestanding #define ENOLINK / see description / // freestanding #define ENOMEM / see description / // freestanding #define ENOMSG / see description / // freestanding #define ENOPROTOOPT / see description / // freestanding #define ENOSPC / see description / // freestanding #define ENOSYS / see description / // freestanding #define ENOTCONN / see description / // freestanding #define ENOTDIR / see description / // freestanding #define ENOTEMPTY / see description / // freestanding #define ENOTRECOVERABLE / see description / // freestanding #define ENOTSOCK / see description / // freestanding #define ENOTSUP / see description / // freestanding #define ENOTTY / see description / // freestanding #define ENXIO / see description / // freestanding #define EOPNOTSUPP / see description / // freestanding #define EOVERFLOW / see description / // freestanding #define EOWNERDEAD / see description / // freestanding #define EPERM / see description / // freestanding #define EPIPE / see description / // freestanding #define EPROTO / see description / // freestanding #define EPROTONOSUPPORT / see description / // freestanding #define EPROTOTYPE / see description / // freestanding #define ERANGE / see description / // freestanding #define EROFS / see description / // freestanding #define ESPIPE / see description / // freestanding #define ESRCH / see description / // freestanding #define ETIMEDOUT / see description / // freestanding #define ETXTBSY / see description / // freestanding #define EWOULDBLOCK / see description / // freestanding #define EXDEV / see description */ // freestanding
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 288 | C++98 | the macro EILSEQ was not defined in | defined |