在C中使用’boost :: system :: error_code’
发布时间:2020-12-16 05:21:42 所属栏目:百科 来源:网络整理
导读:我有以下代码: boost::system::error_code errcode;return (boost::filesystem::create_directories(widePath,errcode)); 当出现问题时,我认为errcode会指出错误的性质.但是,我发现当我知道有问题出现时,errcode保持0,这是没有帮助的. 我也尝试打印错误代码
我有以下代码:
boost::system::error_code errcode; return (boost::filesystem::create_directories(widePath,errcode)); 当出现问题时,我认为errcode会指出错误的性质.但是,我发现当我知道有问题出现时,errcode保持0,这是没有帮助的. 我也尝试打印错误代码,看看它是否会显示不同的东西: boost::system::error_code errcode; boost::filesystem::create_directories(widePath,errcode); if (errcode == 0) return true; else { std::cout << errcode; return false; } 通过在文件夹名称“widPath”中引入无效字符(???),我故意造成错误.现在我回到系统:123结果.这意味着什么? 解决方法
只需访问:
http://www.boost.org/doc/libs/1_55_0/libs/system/doc/reference.html#Header-error_code
enum errc_t { success = 0,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_synbolic_link_levels,//ELOOP value_too_large,//EOVERFLOW wrong_protocol_type //EPROTOTYPE }; 此外: switch( errcode.value() ) { case boost::system::errc::success: { // fine } break; case boost::system::errc::operation_canceled: { // Timer cancelled } break; default: { // Assert unexpected case } break; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |