Error numbers
Each of the macros defined in <cerrno> expands to integer constant expressions with type int , each with a positive value, matching most of the POSIX error codes . 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
<cerrno>
|
|
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
(C++11)
|
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)
|
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)
|
No STREAM resources
(macro constant) |
ENOSTR
(C++11)
|
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)
|
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) |
All values are required to be unique except that the values of
EOPNOTSUPP
and
ENOTSUP
may be identical and the values of
EAGAIN
and
EWOULDBLOCK
may be identical.
Example
#include <cerrno> #include <cstring> #include <iomanip> #include <iostream> #define SHOW(x) std::cout << std::setw(15) << #x << ": " << std::strerror(x) << '\n' int main() { std::cout << "Known error codes/messages:\n\n"; SHOW( E2BIG ); SHOW( EACCES ); SHOW( EADDRINUSE ); SHOW( EADDRNOTAVAIL ); SHOW( EAFNOSUPPORT ); SHOW( EAGAIN ); SHOW( EALREADY ); SHOW( EBADF ); SHOW( EBADMSG ); SHOW( EBUSY ); SHOW( ECANCELED ); SHOW( ECHILD ); SHOW( ECONNABORTED ); SHOW( ECONNREFUSED ); SHOW( ECONNRESET ); SHOW( EDEADLK ); SHOW( EDESTADDRREQ ); SHOW( EDOM ); SHOW( EEXIST ); SHOW( EFAULT ); SHOW( EFBIG ); SHOW( EHOSTUNREACH ); SHOW( EIDRM ); SHOW( EILSEQ ); SHOW( EINPROGRESS ); SHOW( EINTR ); SHOW( EINVAL ); SHOW( EIO ); SHOW( EISCONN ); SHOW( EISDIR ); SHOW( ELOOP ); SHOW( EMFILE ); SHOW( EMLINK ); SHOW( EMSGSIZE ); SHOW( ENAMETOOLONG ); SHOW( ENETDOWN ); SHOW( ENETRESET ); SHOW( ENETUNREACH ); SHOW( ENFILE ); SHOW( ENOBUFS ); SHOW( ENODATA ); SHOW( ENODEV ); SHOW( ENOENT ); SHOW( ENOEXEC ); SHOW( ENOLCK ); SHOW( ENOLINK ); SHOW( ENOMEM ); SHOW( ENOMSG ); SHOW( ENOPROTOOPT ); SHOW( ENOSPC ); SHOW( ENOSR ); SHOW( ENOSTR ); SHOW( ENOSYS ); SHOW( ENOTCONN ); SHOW( ENOTDIR ); SHOW( ENOTEMPTY ); SHOW( ENOTRECOVERABLE ); SHOW( ENOTSOCK ); SHOW( ENOTSUP ); SHOW( ENOTTY ); SHOW( ENXIO ); SHOW( EOPNOTSUPP ); SHOW( EOVERFLOW ); SHOW( EOWNERDEAD ); SHOW( EPERM ); SHOW( EPIPE ); SHOW( EPROTO ); SHOW( EPROTONOSUPPORT ); SHOW( EPROTOTYPE ); SHOW( ERANGE ); SHOW( EROFS ); SHOW( ESPIPE ); SHOW( ESRCH ); SHOW( ETIME ); SHOW( ETIMEDOUT ); SHOW( ETXTBSY ); SHOW( EWOULDBLOCK ); SHOW( EXDEV ); }
Possible output:
Known error codes/messages: E2BIG: Argument list too long EACCES: Permission denied EADDRINUSE: Address already in use EADDRNOTAVAIL: Cannot assign requested address EAFNOSUPPORT: Address family not supported by protocol EAGAIN: Resource temporarily unavailable EALREADY: Operation already in progress EBADF: Bad file descriptor EBADMSG: Bad message EBUSY: Device or resource busy ECANCELED: Operation canceled ECHILD: No child processes ECONNABORTED: Software caused connection abort ECONNREFUSED: Connection refused ECONNRESET: Connection reset by peer EDEADLK: Resource deadlock avoided EDESTADDRREQ: Destination address required EDOM: Numerical argument out of domain EEXIST: File exists EFAULT: Bad address EFBIG: File too large EHOSTUNREACH: No route to host EIDRM: Identifier removed EILSEQ: Invalid or incomplete multibyte or wide character EINPROGRESS: Operation now in progress EINTR: Interrupted system call EINVAL: Invalid argument EIO: Input/output error EISCONN: Transport endpoint is already connected EISDIR: Is a directory ELOOP: Too many levels of symbolic links EMFILE: Too many open files EMLINK: Too many links EMSGSIZE: Message too long ENAMETOOLONG: File name too long ENETDOWN: Network is down ENETRESET: Network dropped connection on reset ENETUNREACH: Network is unreachable ENFILE: Too many open files in system ENOBUFS: No buffer space available ENODATA: No data available ENODEV: No such device ENOENT: No such file or directory ENOEXEC: Exec format error ENOLCK: No locks available ENOLINK: Link has been severed ENOMEM: Cannot allocate memory ENOMSG: No message of desired type ENOPROTOOPT: Protocol not available ENOSPC: No space left on device ENOSR: Out of streams resources ENOSTR: Device not a stream ENOSYS: Function not implemented ENOTCONN: Transport endpoint is not connected ENOTDIR: Not a directory ENOTEMPTY: Directory not empty ENOTRECOVERABLE: State not recoverable ENOTSOCK: Socket operation on non-socket ENOTSUP: Operation not supported ENOTTY: Inappropriate ioctl for device ENXIO: No such device or address EOPNOTSUPP: Operation not supported EOVERFLOW: Value too large for defined data type EOWNERDEAD: Owner died EPERM: Operation not permitted EPIPE: Broken pipe EPROTO: Protocol error EPROTONOSUPPORT: Protocol not supported EPROTOTYPE: Protocol wrong type for socket ERANGE: Numerical result out of range EROFS: Read-only file system ESPIPE: Illegal seek ESRCH: No such process ETIME: Timer expired ETIMEDOUT: Connection timed out ETXTBSY: Text file busy EWOULDBLOCK: Resource temporarily unavailable EXDEV: Invalid cross-device link
See also
(C++11)
|
the
std::error_condition
enumeration listing all standard
<cerrno>
macro constants
(class) |
macro which expands to POSIX-compatible thread-local error number variable
(macro variable) |
|
displays a character string corresponding of the current error to
stderr
(function) |
|
returns a text version of a given error code
(function) |
|
C documentation
for
Error numbers
|