📄 error_code.cpp
字号:
case ENOTCONN: return make_error_condition( not_connected ); case ENOTDIR: return make_error_condition( not_a_directory ); # if ENOTEMPTY != EEXIST // AIX treats ENOTEMPTY and EEXIST as the same value case ENOTEMPTY: return make_error_condition( directory_not_empty ); # endif // ENOTEMPTY != EEXIST case ENOTRECOVERABLE: return make_error_condition( state_not_recoverable ); case ENOTSOCK: return make_error_condition( not_a_socket ); case ENOTSUP: return make_error_condition( not_supported ); case ENOTTY: return make_error_condition( inappropriate_io_control_operation ); case ENXIO: return make_error_condition( no_such_device_or_address ); # if EOPNOTSUPP != ENOTSUP case EOPNOTSUPP: return make_error_condition( operation_not_supported ); # endif // EOPNOTSUPP != ENOTSUP case EOVERFLOW: return make_error_condition( value_too_large ); case EOWNERDEAD: return make_error_condition( owner_dead ); case EPERM: return make_error_condition( operation_not_permitted ); case EPIPE: return make_error_condition( broken_pipe ); case EPROTO: return make_error_condition( protocol_error ); case EPROTONOSUPPORT: return make_error_condition( protocol_not_supported ); case EPROTOTYPE: return make_error_condition( wrong_protocol_type ); case ERANGE: return make_error_condition( result_out_of_range ); case EROFS: return make_error_condition( read_only_file_system ); case ESPIPE: return make_error_condition( invalid_seek ); case ESRCH: return make_error_condition( no_such_process ); case ETIME: return make_error_condition( stream_timeout ); case ETIMEDOUT: return make_error_condition( timed_out ); case ETXTBSY: return make_error_condition( text_file_busy ); # if EAGAIN != EWOULDBLOCK case EWOULDBLOCK: return make_error_condition( operation_would_block ); # endif // EAGAIN != EWOULDBLOCK case EXDEV: return make_error_condition( cross_device_link ); #else // Windows system -> posix_errno decode table ---------------------------// // see WinError.h comments for descriptions of errors case ERROR_ACCESS_DENIED: return make_error_condition( permission_denied ); case ERROR_ALREADY_EXISTS: return make_error_condition( file_exists ); case ERROR_BAD_UNIT: return make_error_condition( no_such_device ); case ERROR_BUFFER_OVERFLOW: return make_error_condition( filename_too_long ); case ERROR_BUSY: return make_error_condition( device_or_resource_busy ); case ERROR_BUSY_DRIVE: return make_error_condition( device_or_resource_busy ); case ERROR_CANNOT_MAKE: return make_error_condition( permission_denied ); case ERROR_CANTOPEN: return make_error_condition( io_error ); case ERROR_CANTREAD: return make_error_condition( io_error ); case ERROR_CANTWRITE: return make_error_condition( io_error ); case ERROR_CURRENT_DIRECTORY: return make_error_condition( permission_denied ); case ERROR_DEV_NOT_EXIST: return make_error_condition( no_such_device ); case ERROR_DEVICE_IN_USE: return make_error_condition( device_or_resource_busy ); case ERROR_DIR_NOT_EMPTY: return make_error_condition( directory_not_empty ); case ERROR_DIRECTORY: return make_error_condition( invalid_argument ); // WinError.h: "The directory name is invalid" case ERROR_DISK_FULL: return make_error_condition( no_space_on_device ); case ERROR_FILE_EXISTS: return make_error_condition( file_exists ); case ERROR_FILE_NOT_FOUND: return make_error_condition( no_such_file_or_directory ); case ERROR_HANDLE_DISK_FULL: return make_error_condition( no_space_on_device ); case ERROR_INVALID_ACCESS: return make_error_condition( permission_denied ); case ERROR_INVALID_DRIVE: return make_error_condition( no_such_device ); case ERROR_INVALID_FUNCTION: return make_error_condition( function_not_supported ); case ERROR_INVALID_HANDLE: return make_error_condition( invalid_argument ); case ERROR_INVALID_NAME: return make_error_condition( invalid_argument ); case ERROR_LOCK_VIOLATION: return make_error_condition( no_lock_available ); case ERROR_LOCKED: return make_error_condition( no_lock_available ); case ERROR_NEGATIVE_SEEK: return make_error_condition( invalid_argument ); case ERROR_NOACCESS: return make_error_condition( permission_denied ); case ERROR_NOT_ENOUGH_MEMORY: return make_error_condition( not_enough_memory ); case ERROR_NOT_READY: return make_error_condition( resource_unavailable_try_again ); case ERROR_NOT_SAME_DEVICE: return make_error_condition( cross_device_link ); case ERROR_OPEN_FAILED: return make_error_condition( io_error ); case ERROR_OPEN_FILES: return make_error_condition( device_or_resource_busy ); case ERROR_OPERATION_ABORTED: return make_error_condition( operation_canceled ); case ERROR_OUTOFMEMORY: return make_error_condition( not_enough_memory ); case ERROR_PATH_NOT_FOUND: return make_error_condition( no_such_file_or_directory ); case ERROR_READ_FAULT: return make_error_condition( io_error ); case ERROR_RETRY: return make_error_condition( resource_unavailable_try_again ); case ERROR_SEEK: return make_error_condition( io_error ); case ERROR_SHARING_VIOLATION: return make_error_condition( permission_denied ); case ERROR_TOO_MANY_OPEN_FILES: return make_error_condition( too_many_files_open ); case ERROR_WRITE_FAULT: return make_error_condition( io_error ); case ERROR_WRITE_PROTECT: return make_error_condition( permission_denied ); case WSAEACCES: return make_error_condition( permission_denied ); case WSAEADDRINUSE: return make_error_condition( address_in_use ); case WSAEADDRNOTAVAIL: return make_error_condition( address_not_available ); case WSAEAFNOSUPPORT: return make_error_condition( address_family_not_supported ); case WSAEALREADY: return make_error_condition( connection_already_in_progress ); case WSAEBADF: return make_error_condition( bad_file_descriptor ); case WSAECONNABORTED: return make_error_condition( connection_aborted ); case WSAECONNREFUSED: return make_error_condition( connection_refused ); case WSAECONNRESET: return make_error_condition( connection_reset ); case WSAEDESTADDRREQ: return make_error_condition( destination_address_required ); case WSAEFAULT: return make_error_condition( bad_address ); case WSAEHOSTUNREACH: return make_error_condition( host_unreachable ); case WSAEINPROGRESS: return make_error_condition( operation_in_progress ); case WSAEINTR: return make_error_condition( interrupted ); case WSAEINVAL: return make_error_condition( invalid_argument ); case WSAEISCONN: return make_error_condition( already_connected ); case WSAEMFILE: return make_error_condition( too_many_files_open ); case WSAEMSGSIZE: return make_error_condition( message_size ); case WSAENAMETOOLONG: return make_error_condition( filename_too_long ); case WSAENETDOWN: return make_error_condition( network_down ); case WSAENETRESET: return make_error_condition( network_reset ); case WSAENETUNREACH: return make_error_condition( network_unreachable ); case WSAENOBUFS: return make_error_condition( no_buffer_space ); case WSAENOPROTOOPT: return make_error_condition( no_protocol_option ); case WSAENOTCONN: return make_error_condition( not_connected ); case WSAENOTSOCK: return make_error_condition( not_a_socket ); case WSAEOPNOTSUPP: return make_error_condition( operation_not_supported ); case WSAEPROTONOSUPPORT: return make_error_condition( protocol_not_supported ); case WSAEPROTOTYPE: return make_error_condition( wrong_protocol_type ); case WSAETIMEDOUT: return make_error_condition( timed_out ); case WSAEWOULDBLOCK: return make_error_condition( operation_would_block ); #endif default: return error_condition( ev, system_category ); } }# if !defined( BOOST_WINDOWS_API ) std::string system_error_category::message( int ev ) const { return generic_category.message( ev ); }# else// TODO: //Some quick notes on the implementation (sorry for the noise if//someone has already mentioned them):////- The ::LocalFree() usage isn't exception safe.////See:////<http://boost.cvs.sourceforge.net/boost/boost/boost/asio/system_exception.hpp?revision=1.1&view=markup>////in the implementation of what() for an example.////Cheers,//Chris std::string system_error_category::message( int ev ) const {# ifndef BOOST_NO_ANSI_APIS LPVOID lpMsgBuf; DWORD retval = ::FormatMessageA( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, ev, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPSTR) &lpMsgBuf, 0, NULL ); if (retval == 0) return std::string("Unknown error"); std::string str( static_cast<LPCSTR>(lpMsgBuf) ); ::LocalFree( lpMsgBuf ); // free the buffer# else // WinCE workaround LPVOID lpMsgBuf; DWORD retval = ::FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, ev, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPWSTR) &lpMsgBuf, 0, NULL ); if (retval == 0) return std::string("Unknown error"); int num_chars = (wcslen( static_cast<LPCWSTR>(lpMsgBuf) ) + 1) * 2; LPSTR narrow_buffer = (LPSTR)_alloca( num_chars ); if (::WideCharToMultiByte(CP_ACP, 0, static_cast<LPCWSTR>(lpMsgBuf), -1, narrow_buffer, num_chars, NULL, NULL) == 0) return std::string("Unknown error"); std::string str( narrow_buffer ); ::LocalFree( lpMsgBuf ); // free the buffer# endif while ( str.size() && (str[str.size()-1] == '\n' || str[str.size()-1] == '\r') ) str.erase( str.size()-1 ); if ( str.size() && str[str.size()-1] == '.' ) { str.erase( str.size()-1 ); } return str; }# endif} // unnamed namespacenamespace boost{ namespace system { BOOST_SYSTEM_DECL error_code throws; // "throw on error" special error_code; // note that it doesn't matter if this // isn't initialized before use since // the only use is to take its // address for comparison purposes BOOST_SYSTEM_DECL const error_category & get_system_category() { static const system_error_category system_category_const; return system_category_const; } BOOST_SYSTEM_DECL const error_category & get_generic_category() { static const generic_error_category generic_category_const; return generic_category_const; } } // namespace system} // namespace boost
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -