2010-10-04 11 views
24

क्या किसी को पता है कि बूस्ट त्रुटि कोड के लिए संदर्भ कहां खोजें। विशेष रूप से, एसिंक्रोनस सॉकेट हैंडलर द्वारा लौटाए गए त्रुटि कोड ?, Google और हेडर फ़ाइलों को grepping खाली खाली हो गया है।बूस्ट त्रुटि कोड संदर्भ

+0

मैं बढ़ावा पता नहीं है, लेकिन अगर तुम भाग्यशाली हो, तुम क्या 'errno में है के रूप में ही त्रुटि कोड मिल सकता है। h'। लिनक्स पर, यह '/ usr/include/asm-generic/errno-base.h' और'/usr/include/asm-generic/errno.h' है), http://lxr.linux.no/linux/ देखें शामिल/asm-generic/errno-base.h और http://lxr.linux.no/linux/include/asm-generic/errno.h शामिल करें। – pts

+0

क्या आपका प्रश्न अभी हल हो गया है? –

+0

हाँ, मेरे बुरे, मैं विचलित हो गया। त्रुटि कोड सिस्टम कोड से व्युत्पन्न होते हैं। विंडोज के लिए ये यहां पाए जा सकते हैं: http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx। लिनक्स के लिए, मुख्य हेडर /usr/incude/errno.h है। ध्यान दें कि आपको लिनक्स पर थोड़ा खुदाई करना होगा क्योंकि वास्तविक कोड अधिक अस्पष्ट फ़ाइल में संग्रहीत होते हैं, जैसे कि /usr/include/asm-generic/errno.h –

उत्तर

6

आप सबसे अधिक संभावना चाहते

यह asio documentation में शामिल है।

+0

'फ़ाइल को शामिल नहीं किया जा सकता है:' boost/asio /errors.hpp ': ऐसी कोई फ़ाइल या निर्देशिका नहीं' क्या आप इस बारे में निश्चित हैं? मैं बूस्ट 1.55 का उपयोग करता हूं और यह काम नहीं करता है। अन्य एएसओ में कोई समस्या नहीं है। –

+0

मॉड्यूलर बूस्ट में (मेरा संस्करण 1.6.1 है) फ़ाइल "error_codes.hpp" बूस्ट/सिस्टम में है। त्रुटि कोड सभी को गणना में परिभाषित किया गया है, लेकिन उनमें से अधिकतर मौजूदा मैक्रोज़ से मान निर्दिष्ट किए गए हैं, उदा। address_family_not_supported = EAFNOSUPPORT। इन मैक्रोज़ को "boost/cerrno.hpp" द्वारा पूरक किया गया है, लेकिन आपके सिस्टम के "errno.h", "/usr/include/asm/errno.h" द्वारा परिभाषित किया जाना चाहिए। मान यूनिक्स/लिनक्स सिस्टम में मानकीकृत होने लगते हैं, जिसका अर्थ है कि वे देखने के लिए काफी आसान हैं, लेकिन एएफएआईके/बूस्ट परिभाषाओं को समझते हैं, इस तरह की कड़ी मेहनत को खत्म करने के लिए आंशिक रूप से वहां हैं। क्या उससे मदद हुई? –

40

मैं लिनक्स पर asio/error.hpp से त्रुटि मान निकाला (मैं हैडर उपयोग कर रहा हूँ केवल asio को बढ़ावा देने नहीं :: माध्यम से asio), यहाँ वे हैं:

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 

आप चाहते हैं अपनी खुद की सूची उत्पन्न, यह आप कॉपी करने और चिपकाने के कुछ ही मिनट बचाने के लिए करना चाहिए:

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; 
संबंधित मुद्दे