std::errc
|
在标头
<system_error> 定义 |
||
|
enum class errc;
|
(C++11 起) | |
有作用域枚举 std::errc 定义对应 POSIX 错误码的可移植错误条件。
成员常量
| 常量 | 等价的 POSIX 错误 |
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 (弃用) |
ENODATA |
no_message |
ENOMSG |
no_protocol_option |
ENOPROTOOPT |
no_space_on_device |
ENOSPC |
no_stream_resources (弃用) |
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 (弃用) |
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 (弃用) |
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)
|
构造 std::errc 错误码 (函数) |
|
(C++11)
|
构造 std::errc 错误条件 (函数) |
帮助类
| 扩充 std::is_error_condition_enum 类型特性以鉴别 std::errc 值为 error_condition (函数模板) |
示例
#include <iostream> #include <system_error> #include <thread> int main() { try { std::thread().detach(); // 脱附一个非线程 } catch (const std::system_error& e) { std::cout << "捕获了 system_error\n"; if(e.code() == std::errc::invalid_argument) std::cout << "错误条件是 std::errc::invalid_argument\n"; std::cout << "错误描述是 " << e.what() << '\n'; } }
输出:
"捕获了 system_error 错误条件是 std::errc::invalid_argument 错误描述是 Invalid argument
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| 缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
|---|---|---|---|
| LWG 3869 | C++11 | 成员常量 no_message_available、no_stream_resources、not_a_stream 和 stream_timeout 涉及了废弃的 POSIX STREAMS API[1] |
弃用这些成员常量 |
- ↑ 尽管对应的 POSIX 错误码 ENODATA、ENOSR、ENOSTR 和 ETIME 在 POSIX 2017 才被标为“即将废弃”,但以前的 POSIX 标准也不要求必须实现 STREAMS API(因为流行的类 Unix 系统拒绝实现它)。
参阅
|
(C++11)
|
保有依赖于平台的错误码 (类) |
|
(C++11)
|
保有可移植的错误码 (类) |