std::errc(3)

NAME
std::errc - std::errc

Synopsis
   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) constructs an std::errc error code
   (C++11) (function)
   make_error_condition(std::errc) constructs an std::errc error condition
   (C++11) (function)

Helper classes
                        extends the type trait
   is_error_condition_enum<std::errc> std::is_error_condition_enum to identify
   (C++11) 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';
     }
 }

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

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