में पहले प्रोग्राम के रिटर्न कोड का उपयोग कैसे करें मैं एक साधारण प्रोग्राम लिख रहा हूं जो एक कंपाइलर से आउटपुट को पार्स करता है और किसी त्रुटि संदेश को दोबारा सुधारता है ताकि आईडीई हम उपयोग कर सकें (विजुअल स्टूडियो) उन्हें पार्स कर सकते हैं । हम nmake
का उपयोग निर्माण करने के लिए है, और यह इस तरह एक कमांड लाइन का उपयोग कर संकलक कॉल करेगा:पाइप कमांड लाइन
cc166.exe SOME_FLAGS_HERE MyCFile.c 2>&1 | TaskingVXToVisualReformat.exe
अब समस्या यह है कि संकलक, cc166
की वापसी कोड, nmake
को वापस खिलाया नहीं है। केवल मेरे सुधारक का रिटर्न कोड उपयोग किया जाता है जिसका अर्थ है कि अगर मैं सुधार कार्यक्रम से शून्य लौटाता हूं, तो nmake निरस्त करने के बजाय निर्माण जारी रहेगा। मैं कंपाइलर (cc166.exe
) से nmake
पर रिटर्न कोड कैसे वापस खिला सकता हूं?
क्या कोई तरीका है कि मेरा सुधार प्रोग्राम कंपाइलर के रिटर्न कोड को पढ़ सकता है और इसका उपयोग अपने रिटर्न कोड का निर्णय लेने पर कर सकता है? सुधारक सी # में लिखा गया है।
यह प्रश्न का उत्तर नहीं देता है। यदि सीसी 166 सफल होता है, तो ऐसा लगता है कि अंतिम रिटर्न कोड भी एक सफलता है। लेकिन अगर यह विफल हो जाता है, तो सुधारक का रिटर्न कोड अभी भी उपयोग किया जाता है: इसलिए सीसी 166 विफल रहता है और सुधारक "सफलता" की कुल वापसी में उपज प्राप्त करता है (जब यह "असफल" होना चाहिए। इसके अलावा, यह मानता है कि सीसी 166 की एकमात्र विफलता में 1 –
में विंडोज़ शेल रिटर्न कोड 0 में सफलता है, कोई अन्य मूल्य विफलता है। स्थिति "अगर त्रुटि नहीं है 1" वास्तव में सफल होता है तो पहला आदेश वापस लौटाता है। FYI, विंडोज़ में "अगर त्रुटि 1" का अर्थ है "अगर त्रुटि कोड अधिक या बराबर 1 " – SlavaGu
मुझे लगता है कि मैंने समझ लिया है कि आपने अभी तक क्या कहा है, लेकिन क्या होता है यदि सीसी 166 1 (या 2, 3, आदि) लौटाता है और 'टास्किंग VXToVisualReformat.exe' रिटर्न 0? पूरी स्क्रिप्ट वापस नहीं करेगा सफलता, इस तथ्य के बावजूद कि सीसी 166 वास्तव में असफल रहा? –