Có ai biết nơi tìm thấy tham chiếu cho mã lỗi tăng hay không. Cụ thể, mã lỗi được trả về bởi trình xử lý socket không đồng bộ ?, Google và grepping các tệp tiêu đề đã điều chỉnh trống.Tham chiếu mã lỗi tăng cường
Trả lời
Dường như (từ googling tương đối hạn chế của tôi) giống như đó thực sự là mã hệ thống. Thông tin thêm tại đây: http://en.highscore.de/cpp/boost/errorhandling.html
Bạn đang sử dụng boost :: system? Điều này có thể cung cấp một số ánh sáng: http://www.boost.org/doc/libs/release/libs/system/doc/index.html
nhiều khả năng bạn muốn
nó được bao gồm trong ASIO documentation.
'Không thể mở tệp bao gồm: 'boost/asio /errors.hpp ': Không có tệp hoặc thư mục nào' Bạn có chắc chắn về điều này không? Tôi sử dụng boost 1.55 và nó không hoạt động. Khác asio bao gồm gây ra không có vấn đề. –
Trong Modular Boost (phiên bản của tôi là 1.6.1), tệp "error_codes.hpp" đang ở trong hệ thống/tăng tốc. Tất cả các mã lỗi đều được xác định trong một điều tra, nhưng hầu hết chúng được gán giá trị từ các macro hiện tại, ví dụ: address_family_not_supported = EAFNOSUPPORT. Các macro này được bổ sung bởi "boost/cerrno.hpp", nhưng phải được xác định bởi "errno.h" của hệ thống, "/usr/include/asm/errno.h". Các giá trị dường như được chuẩn hóa trên các hệ thống Unix/Linux, có nghĩa là chúng đủ dễ tìm kiếm, nhưng AFAIK/hiểu các định nghĩa Boost là một phần để loại bỏ loại hình này. cái đó có giúp ích không? –
tôi trích ra các giá trị lỗi từ ASIO/error.hpp trên Linux (Tôi đang sử dụng tiêu đề chỉ ASIO không đẩy mạnh :: ASIO bằng cách này), ở đây đó là:
asio::error::access_denied 13
asio::error::address_family_not_supported 97
asio::error::address_in_use 98
asio::error::already_connected 106
asio::error::already_started 114
asio::error::broken_pipe 32
asio::error::connection_aborted 103
asio::error::connection_refused 111
asio::error::connection_reset 104
asio::error::bad_descriptor 9
asio::error::fault 14
asio::error::host_unreachable 113
asio::error::in_progress 115
asio::error::interrupted 4
asio::error::invalid_argument 22
asio::error::message_size 90
asio::error::name_too_long 36
asio::error::network_down 100
asio::error::network_reset 102
asio::error::network_unreachable 101
asio::error::no_descriptors 24
asio::error::no_buffer_space 105
asio::error::no_memory 12
asio::error::no_permission 1
asio::error::no_protocol_option 92
asio::error::not_connected 107
asio::error::not_socket 88
asio::error::operation_aborted 125
asio::error::operation_not_supported 95
asio::error::shut_down 108
asio::error::timed_out 110
asio::error::try_again 11
asio::error::would_block 11
Nếu bạn muốn tạo danh sách của riêng bạn, điều này sẽ giúp bạn tiết kiệm một vài phút sao chép và dán:
std::cout << "asio::error::access_denied " << asio::error::access_denied << std::endl;
std::cout << "asio::error::address_family_not_supported " << asio::error::address_family_not_supported << std::endl;
std::cout << "asio::error::address_in_use " << asio::error::address_in_use << std::endl;
std::cout << "asio::error::already_connected " << asio::error::already_connected << std::endl;
std::cout << "asio::error::already_started " << asio::error::already_started << std::endl;
std::cout << "asio::error::broken_pipe " << asio::error::broken_pipe << std::endl;
std::cout << "asio::error::connection_aborted " << asio::error::connection_aborted << std::endl;
std::cout << "asio::error::connection_refused " << asio::error::connection_refused << std::endl;
std::cout << "asio::error::connection_reset " << asio::error::connection_reset << std::endl;
std::cout << "asio::error::bad_descriptor " << asio::error::bad_descriptor << std::endl;
std::cout << "asio::error::fault " << asio::error::fault << std::endl;
std::cout << "asio::error::host_unreachable " << asio::error::host_unreachable << std::endl;
std::cout << "asio::error::in_progress " << asio::error::in_progress << std::endl;
std::cout << "asio::error::interrupted " << asio::error::interrupted << std::endl;
std::cout << "asio::error::invalid_argument " << asio::error::invalid_argument << std::endl;
std::cout << "asio::error::message_size " << asio::error::message_size << std::endl;
std::cout << "asio::error::name_too_long " << asio::error::name_too_long << std::endl;
std::cout << "asio::error::network_down " << asio::error::network_down << std::endl;
std::cout << "asio::error::network_reset " << asio::error::network_reset << std::endl;
std::cout << "asio::error::network_unreachable " << asio::error::network_unreachable << std::endl;
std::cout << "asio::error::no_descriptors " << asio::error::no_descriptors << std::endl;
std::cout << "asio::error::no_buffer_space " << asio::error::no_buffer_space << std::endl;
std::cout << "asio::error::no_memory " << asio::error::no_memory << std::endl;
std::cout << "asio::error::no_permission " << asio::error::no_permission << std::endl;
std::cout << "asio::error::no_protocol_option " << asio::error::no_protocol_option << std::endl;
std::cout << "asio::error::not_connected " << asio::error::not_connected << std::endl;
std::cout << "asio::error::not_socket " << asio::error::not_socket << std::endl;
std::cout << "asio::error::operation_aborted " << asio::error::operation_aborted << std::endl;
std::cout << "asio::error::operation_not_supported " << asio::error::operation_not_supported << std::endl;
std::cout << "asio::error::shut_down " << asio::error::shut_down << std::endl;
std::cout << "asio::error::timed_out " << asio::error::timed_out << std::endl;
std::cout << "asio::error::try_again " << asio::error::try_again << std::endl;
std::cout << "asio::error::would_block " << asio::error::would_block << std::endl;
Tôi không biết tăng, nhưng nếu bạn may mắn, bạn có thể nhận được cùng mã lỗi như những gì có trong 'errno. h'. Trên Linux, nó là '/ usr/include/asm-generic/errno-base.h' và'/usr/include/asm-generic/errno.h'), xem http://lxr.linux.no/linux/ bao gồm/asm-generic/errno-base.h và http://lxr.linux.no/linux/include/asm-generic/errno.h. – pts
là câu hỏi của bạn đã được giải quyết chưa? –
Vâng, xấu của tôi, tôi đã bị bỏ rơi. Các mã lỗi có nguồn gốc từ các mã hệ thống. Đối với Windows, chúng có thể tìm thấy ở đây: http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx. Đối với Linux, tiêu đề chính là /usr/incude/errno.h. Lưu ý rằng bạn sẽ phải tìm hiểu một chút về Linux vì các mã thực tế được lưu trữ trong một tệp ít người biết đến hơn, chẳng hạn như /usr/include/asm-generic/errno.h –