Defined in header <system_error> | ||
---|---|---|
enum class errc; | (since C++11) |
The scoped enumeration std::errc
defines the values of portable error conditions that correspond to the POSIX error codes.
Constant | Equivalent POSIX Error |
---|---|
address_family_not_supported | EAFNOSUPPORT |
address_in_use | EADDRINUSE |
address_not_available | EADDRNOTAVAIL |
already_connected | EISCONN |
argument_list_too_long | E2BIG |
argument_out_of_domain | EDOM |
bad_address | EFAULT |
bad_file_descriptor | EBADF |
bad_message | EBADMSG |
broken_pipe | EPIPE |
connection_aborted | ECONNABORTED |
connection_already_in_progress | EALREADY |
connection_refused | ECONNREFUSED |
connection_reset | ECONNRESET |
cross_device_link | EXDEV |
destination_address_required | EDESTADDRREQ |
device_or_resource_busy | EBUSY |
directory_not_empty | ENOTEMPTY |
executable_format_error | ENOEXEC |
file_exists | EEXIST |
file_too_large | EFBIG |
filename_too_long | ENAMETOOLONG |
function_not_supported | ENOSYS |
host_unreachable | EHOSTUNREACH |
identifier_removed | EIDRM |
illegal_byte_sequence | EILSEQ |
inappropriate_io_control_operation | ENOTTY |
interrupted | EINTR |
invalid_argument | EINVAL |
invalid_seek | ESPIPE |
io_error | EIO |
is_a_directory | EISDIR |
message_size | EMSGSIZE |
network_down | ENETDOWN |
network_reset | ENETRESET |
network_unreachable | ENETUNREACH |
no_buffer_space | ENOBUFS |
no_child_process | ECHILD |
no_link | ENOLINK |
no_lock_available | ENOLCK |
no_message_available (deprecated) | ENODATA |
no_message | ENOMSG |
no_protocol_option | ENOPROTOOPT |
no_space_on_device | ENOSPC |
no_stream_resources (deprecated) | ENOSR |
no_such_device_or_address | ENXIO |
no_such_device | ENODEV |
no_such_file_or_directory | ENOENT |
no_such_process | ESRCH |
not_a_directory | ENOTDIR |
not_a_socket | ENOTSOCK |
not_a_stream (deprecated) | ENOSTR |
not_connected | ENOTCONN |
not_enough_memory | ENOMEM |
not_supported | ENOTSUP |
operation_canceled | ECANCELED |
operation_in_progress | EINPROGRESS |
operation_not_permitted | EPERM |
operation_not_supported | EOPNOTSUPP |
operation_would_block | EWOULDBLOCK |
owner_dead | EOWNERDEAD |
permission_denied | EACCES |
protocol_error | EPROTO |
protocol_not_supported | EPROTONOSUPPORT |
read_only_file_system | EROFS |
resource_deadlock_would_occur | EDEADLK |
resource_unavailable_try_again | EAGAIN |
result_out_of_range | ERANGE |
state_not_recoverable | ENOTRECOVERABLE |
stream_timeout (deprecated) | ETIME |
text_file_busy | ETXTBSY |
timed_out | ETIMEDOUT |
too_many_files_open_in_system | ENFILE |
too_many_files_open | EMFILE |
too_many_links | EMLINK |
too_many_symbolic_link_levels | ELOOP |
value_too_large | EOVERFLOW |
wrong_protocol_type | EPROTOTYPE |
(C++11) | constructs an std::errc error code (function) |
(C++11) | constructs an std::errc error condition (function) |
(C++11) | extends the type trait std::is_error_condition_enum to identify std::errc values as error conditions (function template) |
#include <iostream> #include <system_error> #include <thread> int main() { try { std::thread().detach(); // detaching a not-a-thread } catch (const std::system_error& e) { std::cout << "Caught a system_error\n"; if (e.code() == std::errc::invalid_argument) std::cout << "The error condition is 'std::errc::invalid_argument'\n"; std::cout << "The error description is '" << e.what() << "'\n"; } }
Possible output:
Caught a system_error The error condition is 'std::errc::invalid_argument' The error description is 'Invalid argument'
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3869 | C++11 | the member constants no_message_available ,no_stream_resources , not_a_stream and stream_timeout referred to the obsolete POSIX STREAMS API[1] | deprecated them |
(C++11) | holds a platform-dependent error code (class) |
(C++11) | holds a portable error code (class) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/error/errc