c सी में एक्सचेंज कोड 11 का अर्थ है?




segmentation-fault exit-code (3)

अन्य उत्तरों ने वाक्यांश "निकास कोड" में संभावित अस्पष्टता को याद किया है। मुझे संदेह है कि आप "निकास कोड" से क्या मतलब है, यह स्थिति कोड है जो कि syscalls के wait परिवार से प्राप्त किया गया है, जैसे:

/* assume a child process has already been created */
int status;
wait(&status);
printf("exit code %d\n", status);

यदि आप ऐसा कुछ करते हैं तो आप बच्चा प्रक्रिया segfaults अगर "बहुत से बाहर निकलें कोड 11" देखेंगे। यदि बाल प्रक्रिया वास्तव में exit(11) तो आप इसके बजाय "निकास कोड 2816" देख सकते हैं

बाहर निकलने के लिए पारित मूल्य के साथ भ्रम से बचने के लिए, उन चीजों को "प्रतीक्षा कोड" या "प्रतीक्षा स्थिति" के बजाय कॉल करने के बजाय "कॉल आउट" के बजाय कॉल करना बेहतर होगा। एक प्रतीक्षा कोड में एक पूर्णांक में एकत्रित जानकारी के कई टुकड़े शामिल हैं आम तौर पर, आपको सीधे पूर्णांक को नहीं देखना चाहिए (जैसा कि मैंने ऊपर printf में किया था) इसका विश्लेषण करने के लिए आपको <sys/wait.h> से W* मैक्रोज़ का उपयोग करना चाहिए।

WIF* मैक्रोज़ के साथ शुरू करें कि किस तरह की चीज हुई, फिर उस जानकारी का उपयोग करने के लिए निर्णय लेने के लिए कौन सी अन्य W* मैक्रोज़ का उपयोग करें।

if(WIFEXITED(status)) {
  /* The child process exited normally */
  printf("Exit value %d\n", WEXITSTATUS(status));
} else if(WIFSIGNALED(status)) {
  /* The child process was killed by a signal. Note the use of strsignal
     to make the output human-readable. */
  printf("Killed by %s\n", strsignal(WTERMSIG(status)));
} else {
  /* ... you might want to handle "stopped" or "continued" events here */
}

सी में निकास कोड 11 का सामान्य अर्थ क्या है? मैंने चारों ओर देखा है और एक निश्चित जवाब नहीं मिल सकता है इसलिए मैंने सोचा कि मैं यहाँ पूछूंगा। यह तब आता है जब मैं किसी तत्व को एक सदिश में जोड़ने का प्रयास करता हूं।


आपको एक निश्चित जवाब नहीं मिला क्योंकि वहाँ एक नहीं है यह निर्धारित करने के लिए प्रोग्राम के लेखक पर निर्भर करता है कि वे किन किनारा कोड का उपयोग करना चाहते हैं। मानक सी केवल कहते हैं कि exit(0) या exit(EXIT_SUCCESS) संकेत मिलता है कि कार्यक्रम सफल है, और यह है कि exit(EXIT_FAILURE) किसी प्रकार की एक त्रुटि इंगित करता है ( main से मूल्य लौटाना उस मूल्य के साथ कॉलिंग के समान है।) विंडोज, लिनक्स, ओएसएक्स सहित अधिकांश सामान्य ऑपरेटिंग सिस्टम, त्रुटियों को इंगित करने के लिए 1 से 255 तक सफलता और मूल्य के लिए 0 का उपयोग करते हैं; अभी भी त्रुटि कोड के बीच चयन आवेदन लेखक पर निर्भर है, मूल्य 11 विशेष कुछ भी नहीं है

लिनक्स और अधिकांश अन्य यूनिक्स संस्करणों के तहत, सिग्नल नंबर 11 एक सेगमेंटेशन गलती को इंगित करता है , जैसा कि Kerrek एसबी द्वारा टिप्पणी करता है एक विभाजन गलती तब होती है जब कोई प्रोग्राम किसी प्रकार की अमान्य मेमोरी एक्सेस करता है, इसलिए यह सरणी को सीमा से बाहर तक पहुंचने का एक सुखद परिणाम या पॉइंटर अंकगणितीय में त्रुटि या नल सूचक, या अन्य पॉइंटर से संबंधित त्रुटियों तक पहुंचने का प्रयास करता है। संकेत 11 निकास कोड 11 जैसा ही नहीं है: जब एक प्रोग्राम सिग्नल के कारण मर जाता है, तो इसे सामान्य रूप से बाहर होने के बजाय सिग्नल द्वारा मारे जाने के रूप में चिह्नित किया जाता है। एक एक्सेक्ट कोड की रिपोर्ट करके यूनिक्स गोले की रिपोर्ट सिग्नल जो संकेत संख्या से अधिक 128 है, इसलिए 13 9 को विभाजन की गलती के लिए।


कोई मानक परिभाषित नहीं है जो कुछ कोडों से बाहर निकलने वाले कोड को किसी निश्चित स्थितियों में सेट करना होता है। यह पूरी तरह से प्रोग्रामर जो बाहर निकलने कोड जो त्रुटि या सफलता का प्रतिनिधित्व करने के लिए है!

कभी-कभी प्रोग्रामर यह तय करते हैं कि शून्य से कोई भी मान भिन्न होता है, और कभी-कभी यह मान ऑपरेटिंग सिस्टम त्रुटि कोड के बराबर होती है।

किसी फ़ाइल के साथ समस्याओं के कारण Windows निकास कोड 11 का उपयोग किया जा सकता है यदि आप इस त्रुटि कोड का विवरण चाहते हैं (जो कि विंडोज के लिए विशिष्ट है और जरूरी नहीं कि आपका आवेदन) net helpmsg 11





exit-code