Difference between revisions of "cpp/error/errno macros"
From cppreference.com
D41D8CD98F (Talk | contribs) (Undo revision 131460 by 111.222.64.111 (talk)) |
|||
Line 2: | Line 2: | ||
{{cpp/error/navbar}} | {{cpp/error/navbar}} | ||
− | Each of the macros defined in {{ | + | Each of the macros defined in {{header|cerrno}} expands to integer constant expressions with type {{c|int}}, each with a positive value, matching most of the [https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html POSIX error codes]. The following constants are defined (the implementation may define more, as long as they begin with {{c/core|'E'}} followed by digits or uppercase letters). |
{{dsc begin}} | {{dsc begin}} | ||
Line 86: | Line 86: | ||
{{dsc end}} | {{dsc end}} | ||
− | All values are required to be unique except that the values of {{tt|EOPNOTSUPP}} and {{tt|ENOTSUP}} may be identical and the values of {{tt|EAGAIN}} and {{tt|EWOULDBLOCK}} may be identical | + | All values are required to be unique except that the values of {{tt|EOPNOTSUPP}} and {{tt|ENOTSUP}} may be identical and the values of {{tt|EAGAIN}} and {{tt|EWOULDBLOCK}} may be identical. |
===Example=== | ===Example=== | ||
− | {{example | + | {{example|code= |
+ | #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 ); | ||
+ | } | ||
+ | |p=true | ||
+ | |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=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/error/dsc errc}} | + | {{dsc inc|cpp/error/dsc errc}} |
− | {{dsc inc | cpp/error/dsc errno}} | + | {{dsc inc|cpp/error/dsc errno}} |
− | {{dsc inc | cpp/io/c/dsc perror}} | + | {{dsc inc|cpp/io/c/dsc perror}} |
− | {{dsc inc | cpp/string/byte/dsc strerror}} | + | {{dsc inc|cpp/string/byte/dsc strerror}} |
− | {{dsc see c | c/error/errno_macros | Error numbers | nomono=true}} | + | {{dsc see c|c/error/errno_macros|Error numbers|nomono=true}} |
{{dsc end}} | {{dsc end}} | ||
{{langlinks|de|es|fr|it|ja|pt|ru|zh}} | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 11:21, 25 August 2023
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.
[edit] Example
Run this code
#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
[edit] 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
|