Standard library header <cerrno> - cppreference.com

This header was originally in the C standard library as <errno.h>.

This header is part of the error handling library.

Macros

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)

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.

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

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 <cerrno> defined

See also