यह एक कभी न खत्म होने वाली कहानी है जो "अंतर और सभी पर पोर्टेबिलिटी" की सीमाओं (एक मिथक) को दर्शाती है।
"सफलता" को इंगित करने के लिए कार्यक्रम को क्या लौटना चाहिए, यह परिभाषित किया जाना चाहिए कि कौन भाषा विनिर्देश द्वारा मान (ऑपरेटिंग सिस्टम, या प्रोग्राम को लागू करने वाली प्रक्रिया) प्राप्त कर रहा है।
लेकिन प्रोग्रामर "पोर्टेबल तरीके" में कोड लिखना पसंद करते हैं और इसलिए वे "ऑपरेटिंग सिस्टम" की अवधारणा के लिए अपने स्वयं के मॉडल का आविष्कार करते हैं ताकि लौटने के लिए प्रतीकात्मक मूल्यों को परिभाषित किया जा सके।
अब, कई-से-कई परिदृश्यों में (जहां कई भाषाएं कई सिस्टम में प्रोग्राम लिखने के लिए सेवा देती हैं) "सफलता" के लिए भाषा सम्मेलन और ऑपरेटिंग सिस्टम एक के बीच पत्राचार (कि कोई भी हमेशा एक ही होने के लिए अनुदान नहीं दे सकता है) एक विशिष्ट लक्ष्य मंच के लिए एक पुस्तकालय के विशिष्ट कार्यान्वयन द्वारा नियंत्रित किया जाता है।
लेकिन - दुर्भाग्यपूर्ण रूप से - ये अवधारणा जहां उस समय स्पष्ट नहीं थी, जब सी भाषा को तैनात किया गया था (मुख्य रूप से UNIX कर्नेल लिखने के लिए), और पुस्तकों की गिगाग्राम जहां "रिटर्न 0 का मतलब सफलता" कहकर लिखा गया था, क्योंकि यह ओएस पर सच था। उस समय एक सी संकलक है।
तब से, इस तरह के पत्राचार को कैसे संभाला जाना चाहिए, इस पर कोई स्पष्ट मानकीकरण कभी नहीं किया गया था। C और C ++ की "वापसी मान" की अपनी परिभाषा है, लेकिन कोई भी एक उचित ओएस अनुवाद (या बेहतर: कोई संकलक प्रलेखन इसके बारे में कुछ भी नहीं कहता है) प्रदान करता है। 0 का मतलब है कि सफलता अगर UNIX के लिए सही है - LINUX और -for स्वतंत्र कारणों के लिए- साथ ही विंडोज के लिए, और यह मौजूदा "उपभोक्ता कंप्यूटर" का 90% कवर करता है, जो कि - अधिकांश मामलों में - वापसी मूल्य की उपेक्षा करता है (इसलिए हम कर सकते हैं दशकों के लिए चर्चा करें, बू कोई भी कभी नोटिस करेगा! "
इस परिदृश्य के अंदर, निर्णय लेने से पहले, इन प्रश्नों को पूछें: - क्या मुझे अपने मौजूदा के बारे में अपने कॉलर को कुछ बताने के लिए दिलचस्पी है? (यदि मैं हमेशा 0 लौटाता हूं ... सभी चीजों के पीछे कोई सुराग नहीं है) - क्या मेरे कॉलर के पास इस संचार के बारे में कन्वेंशन हैं? (ध्यान दें कि एक एकल मान एक कन्वेंशन नहीं है: जो किसी भी सूचना प्रतिनिधित्व की अनुमति नहीं देता है)
यदि यह दोनों उत्तर नहीं हैं, तो संभवत: अच्छा समाधान मुख्य रिटर्न स्टेटमेंट को बिल्कुल भी नहीं लिखता है। (और संकलक तय करने के लिए लक्ष्य के संबंध में काम करने दें)।
यदि कोई कन्वेंशन 0 में नहीं है, तो सफलता अधिकतर स्थितियों से मिलती है (और यदि वे किसी कन्वेंशन का परिचय देते हैं तो प्रतीकों का उपयोग समस्याग्रस्त हो सकता है)।
यदि कन्वेंशन जगह में हैं, तो प्रतीकात्मक स्थिरांक का उपयोग करना सुनिश्चित करें जो उनके साथ सुसंगत हैं (और प्लेटफ़ॉर्म के बीच, कॉन्वेंट सुसंगतता सुनिश्चित करें, न कि सुसंगतता सुनिश्चित करें)।