जब assert()
कॉल विफल हो जाता है, तो निकास कोड का उपयोग क्या होता है, और यह कहां से प्रलेखित होता है?जब जोर दें() विफल रहता है, प्रोग्राम निकास कोड क्या है?
उत्तर
c99 मानक कहा गया है कि assert
कॉल abort
और abort
सामान राज्यों इस वापसी कोड के बारे में:
स्थिति का एक कार्यान्वयन से परिभाषित प्रपत्र असफल समाप्ति समारोह के माध्यम से मेजबान पर्यावरण में आता है कॉल जुट (एसआईजीएबीआरटी)।
यह सी 99 मानक here की धारा 7.2.1.1 (जोर) और 7.20.4.1 (निरस्त) में प्रलेखित है।
कई यूनिक्स सिस्टम 128 और सिग्नल नंबर (एसआईजीएबीआरटी सिग्नल नंबर 6) लौटाएंगे, इसलिए आपको 134 मिल सकते हैं। जो कुछ भी आपको मिलता है, उसे सी कार्यान्वयन द्वारा दस्तावेज किया जाना चाहिए।
उदाहरण के लिए, जीसीसी के लिए here देखें। हालांकि यह कॉलिंग पर्यावरण पर वापस लौटने पर काफी चुप है। विशिष्ट वर्गों से here:
लाइब्रेरी और ऑपरेटिंग सिस्टम (या एक फ्रीस्टैंडिंग पर्यावरण के लिए संकलन करते समय अन्य वातावरण) द्वारा कुछ विकल्प किए जाते हैं; विवरण के लिए उनके दस्तावेज देखें।
और here:
इन बातों के अधिकांश के व्यवहार सी पुस्तकालय के कार्यान्वयन पर निर्भर कर रहे हैं, और जीसीसी से ही परिभाषित नहीं कर रहे हैं।
तो प्रोग्राम समाप्ति (विशेष रूप से बाहर निकलने की स्थिति बिट) पर glibc doco here है। यह सम्मेलनों का उल्लेख करता है लेकिन कोई फर्म नियम नहीं है।
यह कार्यान्वयन-विशिष्ट है। आप ऐसा कर सकता है:
int main()
{
assert(0);
}
तो यह चलाएँ:
> ./a.out
> echo $?
1 (<- or whatever)
यह कम से कम तुम क्या अपने स्थापना के लिए उम्मीद करने के लिए कहेगा। मैं gcc और g ++ दोनों के साथ कुछ लिनक्स बॉक्स पर 134 gettitng हूँ।
आपको हमेशा अपने उत्तरों को मानक के विशिष्ट संदर्भ के साथ वापस लेना चाहिए। – wilhelmtell
कंपाइलर हमेशा टी के मानक का पालन नहीं करते हैं (मैं आपको माइक्रोसॉफ्ट देख रहा हूं) हालांकि यह जानना अच्छा है कि मानक क्या कहता है - यह भी उतना ही अच्छा है जितना कि कंपाइलर्स वास्तव में क्या करते हैं। उन्हें क्या करना चाहिए वह हमेशा ऐसा नहीं होता है जो वे वास्तव में करते हैं। वह और मानक वास्तव में मुफ़्त नहीं है। –
मैं पॉज़िक्स संदेश कतारों के साथ काम कर रहा था मुझे एक ही त्रुटि मिली है mq_open errono 38 (ENOSYS) के साथ विफल रहा है।
कर्नेल कॉन्फ़िगरेशन में सक्षम पॉज़िक्स संदेश QUEUE के साथ केनेल को पुनर्निर्माण करना है।
यह कर्नेल को POSIX संदेश कतार समर्थन के साथ बनाएगा और यह मेरे लिए काम करता है।
धन्यवाद
मुझे लगता है कि आप इस जवाब को किसी अन्य प्रश्न पर रखना चाहते थे। –
मैं इसके लिए वास्तविक कल्पना नहीं मिल सकता है (इसे POSIX तरह का मुश्किल खोज करने के लिए है), लेकिन मैं एक संदर्भ मिला।
एक निकास स्थिति में एक फेंकने का परिणाम परिणाम जो EXIT_FAILURE
के समान होता है (reference)।चूंकि आप लिनक्स से निपट रहे हैं, इसलिए आप पीओएसईक्स से भी निपट रहे हैं, जो सी 99 से व्यवहार को परिभाषित करता है।
- 1. पावरहेल उचित निकास कोड वापस करने में विफल रहता है
- 2. document.createEvent विफल रहता है
- 3. यदि दावा विफल रहता है, तो क्या कोई बग है?
- 4. WebBrowserTask विफल रहता है
- 5. जब CDialog.DoModal() फ़ंक्शन संवाद बॉक्स बनाने में विफल रहता है?
- 6. क्या होगा यदि नया विफल रहता है?
- 7. mkdir -p विफल रहता है जब निर्देशिका मौजूद होती है
- 8. गतिशील_कास्ट कैसे विफल रहता है?
- 9. , परिसंपत्ति precompile विफल रहता है
- 10. gclient runhooks विफल रहता है
- 11. मीडियालेमेंट दोहराना व्यवहार विफल रहता है जब xpath
- 12. क्या javaws निकास कोड वास्तव में टूटा हुआ है?
- 13. DQL क्वेरी विफल रहता है
- 14. ओपनएसएसएल डिक्रिप्ट विफल रहता है लेकिन त्रुटि कोड 0
- 15. MSMQ :: GetPrivateQueuesByMachine में विफल रहता है जब "स्थानीय होस्ट"
- 16. वसंत पहलू विफल रहता है जब नए धागे
- 17. यदि दावा विफल रहता है तो रणनीति क्या है
- 18. fopen अदृश्य रूप में विफल रहता है
- 19. प्रक्रिया निकास कोड जब प्रक्रिया को मार डाला जाता है
- 20. रीचैबिलिटी क्लास जोड़ना विफल रहता है जब मैं
- 21. File.Move में विफल रहता है जब एक File.Delete
- 22. जेनकींस बिल्ड में विफल रहता है जब कलाकृतियों नहीं हैं
- 23. copypng निकास कोड 1
- 24. यह संग्रहAssert.AreEquivalent() परीक्षण क्यों विफल रहता है?
- 25. कस्टम सी ++ जोर दें मैक्रो
- 26. जब सर्विसस्टैक प्रमाणीकरण विफल रहता है, तो पुनर्निर्देशित न करें?
- 27. शिपिंग जब विज्ञापन परिनियोजन विफल रहता है Default.png छवियाँ
- 28. NuGet पुनर्स्थापना विफल रहता है जब निर्भरता .csproj
- 29. निकास विफल स्क्रिप्ट रन (पायथन)
- 30. "जोर दें झूठी" और "self.assertFalse"
यह एक शानदार जवाब है, और 134 वही है जो मुझे मिल रहा है। –
जीसीसी के लिए प्रलेखन से जुड़े ब्याज में कुछ भी शामिल नहीं है, और न ही मुझे आपके द्वारा उद्धृत उद्धरण मिल सकता है। –
आप ग्लिबैक डॉको लिंक को सीधे यहां तक इंगित करने के लिए बदल सकते हैं जब तक कि मुझे कुछ याद नहीं आया? http://www.gnu.org/s/libc/manual/html_node/Exit-Status.html#Exit-Status –