# std::errc

From cppreference.com
< cpp‎ | error

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.

### Member constants

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` | 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

### Non-member functions

make_error_code(std::errc) (C++11) | constructs an std::errc error code (function)
make_error_condition(std::errc) (C++11) | constructs an std::errc error condition (function)

### Helper classes

is_error_condition_enum<std::errc> (C++11) | extends the type trait std::is_error_condition_enum to identify the the std::errc values as error conditions (function template)

### Example

Run this code

    #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';
        }
    }

Output:

    Caught a system_error
    The error condition is std::errc::invalid_argument
    the error description is Invalid argument

### See also

error_code (C++11) | holds a platform-dependent error code (class)
error_condition (C++11) | holds a portable error code (class)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/error/errc&oldid=98322"