- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有以下代码:
boost::system::error_code errcode;
return (boost::filesystem::create_directories(widePath, errcode));
当出现问题时,我认为 errcode
将指示错误的性质。但是,我发现当我知道出现问题时,errcode
保持在 0
这没有帮助。
我还尝试打印 errcode
以查看它是否会显示不同的内容:
boost::system::error_code errcode;
boost::filesystem::create_directories(widePath, errcode);
if (errcode == 0)
return true;
else
{
std::cout << errcode;
return false;
}
我故意在文件夹名称 widePath
中引入无效字符 (???
) 导致错误。现在我得到了 system: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;
}
关于c++ - 在 C++ 中使用 'boost::system::error_code',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046742/
我想尽可能用标准 C++ 中的等价物替换外部库(如 boost),如果它们存在并且可能的话,以最小化依赖关系,因此我想知道是否存在一种安全的方法来转换 boost::system::error_cod
我正在编写一个在底层使用 Boost.Asio 的 C++11 网络库。我想公开一个允许用户使用堆栈协程的 API。 boost::asio::yield_context 重载 [] 运算符,以便异步
我正在尝试使用 Microsoft 的 cpprestsdk。我遇到了一个错误,所以我想检查错误代码。但是我无法弄清楚 error_code 的格式说明符,我收到了这个警告: warning: for
在Delphi XE中,我有一个TClientDataSet,它是从TADOQuery获取数据的,我要为其附加一个新条目。代码看起来像这样: with DataModule.MyClientDataS
我的目标是用与平台无关的版本(适用于 windows 和 linux)替换一个非常非常简单的 winsock 实现,它工作得很好。使用 boost 来提供抽象层,主要是因为它在小组的其他地方使用过,而
我是 still通过 std::error_code 并且我现在试图使我的错误枚举列表等同于 std::error_code。我正在关注 this 上的内容教程,但由于某种原因我无法让它工作,我总是以
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
我正在研究 C++11 标准。我想了解 error_code 和 errno 是否相互关联?如果是那么如何?如果否,那么我应该在哪些条件下设置 errno 以及在哪些条件下设置 error_code?
我的印象是我应该能够按照下面的方式比较系统类别和一般类别错误。我错过了什么吗?当我使用 gcc 执行此操作时,它们比较不相等。 #include #include int main() {
最近我一直在转换一些库以使用 C++11 中的设施。 我很难理解 std::error_code 的用例与 std::error_condition . 注意,我明白其中的区别 - 有 many q
我目前正在构建一个嵌入式系统并使用现代 C++ 编译器。 虽然我在技术上可以在给定资源(ARM7,超过 10M RAM)中进行异常处理,但我认为异常不是处理此类事情的正确工具,并且使用异常需要 RTT
主 MySql 版本 - 5.6.24-enterprise-commercial-advanced-log MySQL Enterprise Server Slave MySql version -
我的设置:带有 Xcode/clang 的 macOS 来自 examples of std::error_code ,它似乎与枚举兼容,例如,您可以为其分配一个枚举,但是当它与这样的整数进行比较时:
在 iPhone 上使用 fbconnect。 NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndK
我正在尝试发送 rest api Users.getLoggedInUser我有所有的 secret session 和所有的认证根据这个网站: http://wiki.developers.face
我想序列化一个 std::error_code,通过网络传输它并再次反序列化。有没有办法做到这一点,或者我是否需要一个将整数值映射到/从 std::error_code 映射的转换表(switch-c
我正在编写一个库,并希望在远程系统返回错误时返回错误代码。问题是它们由字符串标识,例如“0A01”,并且还包含一条消息,错误代码需要一个整数作为值。 实现错误代码的最佳方法是什么,它具有 std::e
我有一个返回 std::error_code 的方法。我对错误消息不是特别感兴趣,只对方法是否成功感兴趣。 测试 std::error_code 是否代表成功操作的最佳方法是什么? 最佳答案 我在使用
我正在使用 C++11 system_error 错误代码库为我正在制作的库创建自定义错误类。我以前用 boost::error_code 做过这个,但我不能完全让它与 std::error_code
对于错误处理,异常对我来说是个问题,因为我的代码将是一个动态链接库。此外,我认为异常(exception)只应在特殊情况下使用。但是我会遇到可能发生错误的情况,这并非异常(exception)。另一个
我是一名优秀的程序员,十分优秀!