Ubuntu 20.04 में C++ में Argc और Argv क्या है?
पैरामीटर 'Argc' तर्क गणना को संदर्भित करता है, जबकि 'Argv' एक वर्ण सरणी को संदर्भित करता है जो C ++ में प्रोग्राम निष्पादित करने के समय कमांड लाइन के माध्यम से 'मुख्य ()' फ़ंक्शन को पास किए गए सभी तर्कों को रखता है। यहां, आपको यह जानने की जरूरत है कि 'आर्गक' हमेशा पारित तर्कों की वास्तविक संख्या से अधिक '1' के रूप में तर्क गणना दिखाता है। ऐसा इसलिए है क्योंकि ऑब्जेक्ट फ़ाइल का नाम भी कमांड-लाइन तर्क के रूप में गिना जाता है। आप किसी भी डेटा प्रकार से संबंधित कमांड लाइन तर्कों को 'मुख्य ()' फ़ंक्शन में पास कर सकते हैं। आपको केवल इस बात का ध्यान रखना है कि यदि आप उन्हें इसके अंदर एक्सेस करना चाहते हैं तो ये पैरामीटर आपके 'मुख्य ()' फ़ंक्शन के प्रोटोटाइप में उल्लिखित हैं। हालाँकि, 'मुख्य ()' फ़ंक्शन इन दो मापदंडों के बिना पूरी तरह से काम कर सकता है। इस लेख के अगले भाग में इस पर चर्चा की जाएगी, जिसके बाद हम Ubuntu 20.04 में C++ में इन दो मापदंडों के उपयोग के लिए आगे बढ़ेंगे।
C ++ में Argc और Argv के बिना मुख्य कार्य:
सबसे पहले, हम आपको बताना चाहते हैं कि सी ++ में 'मुख्य ()' फ़ंक्शन 'argc' और 'argv' पैरामीटर का उपयोग किए बिना भी पूरी तरह से काम कर सकता है। इसे निम्नलिखित C++ प्रोग्राम में दर्शाया गया है:
हमारे पास इस कार्यक्रम में बिना किसी तर्क के एक सरल 'मुख्य ()' फ़ंक्शन है। इस 'मुख्य ()' फ़ंक्शन के भीतर, हम टर्मिनल पर केवल एक नमूना संदेश प्रिंट कर रहे हैं।
फिर, हमने नीचे उल्लिखित कमांड की मदद से इस मूल C++ प्रोग्राम को संकलित किया:
$ जी ++ CommandLine.cpp -ओ कमांडलाइन
बाद में, हमने निम्न आदेश चलाकर इस प्रोग्राम को निष्पादित किया:
$ . / कमांड लाइन
इस सरल C++ प्रोग्राम का आउटपुट नीचे दी गई छवि में दिखाया गया है:
किसी कमांड लाइन तर्क को पास किए बिना C++ प्रोग्राम चलाना:
अब, हम एक C ++ प्रोग्राम को लागू करने का प्रयास करेंगे जिसमें 'मुख्य ()' फ़ंक्शन पैरामीटर 'argc' और 'argv' को स्वीकार करने में सक्षम है, हालाँकि, हम इस प्रोग्राम को निष्पादित करते समय इन तर्कों को पास नहीं करेंगे। टर्मिनल। कहा गया C++ प्रोग्राम निम्न छवि में दिखाया गया है:
इस C ++ प्रोग्राम में, हमारा 'मुख्य ()' फ़ंक्शन 'argc' और 'argv' पैरामीटर स्वीकार करने में सक्षम है। हालाँकि, चूंकि हम इस विशेष उदाहरण में इन मानों को पास करने का इरादा नहीं रखते हैं, इसलिए हमने जानबूझकर 'argc' को '0' के बराबर कर दिया है ताकि जब हम इसके मूल्य को प्रिंट करने का प्रयास करें, तो यह कोई कचरा मूल्य वापस नहीं करेगा। उसके बाद, हमने टर्मिनल पर 'argc' पैरामीटर का मान प्रिंट किया है। फिर, हमने टर्मिनल पर सभी कमांड लाइन तर्कों को प्रिंट करने के लिए 'फॉर' लूप का उपयोग किया है।
हमने नीचे दिखाए गए आदेश का उपयोग करके इस कोड को संकलित किया है:
$ जी ++ CommandLine.cpp -ओ कमांडलाइन
फिर, जब हम इस प्रोग्राम को चलाना चाहते थे, तो हमने इसके लिए कोई कमांड-लाइन आर्गुमेंट पास नहीं किया, जैसा कि आप निम्न कमांड से देख सकते हैं:
$ . / कमांड लाइन
नीचे दी गई छवि में दिखाए गए इस सी ++ प्रोग्राम के आउटपुट से, आप देख सकते हैं कि इस फ़ंक्शन में कोई कमांड लाइन तर्क पारित नहीं किया गया था जिसके कारण तर्क संख्या '0' थी और टर्मिनल पर कोई तर्क मुद्रित नहीं किया गया था क्योंकि वर्ण सरणी ' argv” भी खाली था।
पूर्णांक प्रकार कमांड लाइन तर्कों के साथ C++ प्रोग्राम चलाना:
अब, हम पूर्णांक प्रकार कमांड-लाइन तर्कों को पारित करके उसी C++ प्रोग्राम को चलाना चाहते हैं। हालाँकि, ऐसा करने से पहले, हम अपने कोड को थोड़ा संशोधित करेंगे जैसा कि निम्नलिखित चित्र में दिखाया गया है:
इस कोड में हमने जो एकमात्र संशोधन किया है, वह यह है कि हमने इसमें से 'argc = 0' रेखा को हटा दिया है क्योंकि इस उदाहरण में, हम रन टाइम पर इस प्रोग्राम को दिए गए कमांड लाइन तर्कों की वास्तविक संख्या को प्रिंट करना चाहते हैं। बाकी कोड ठीक वैसा ही है जैसा ऊपर के सेक्शन में इस्तेमाल किया गया है।
हमने नीचे दिखाए गए आदेश का उपयोग करके हमारे संशोधित कोड को पुनः संकलित किया:
$ जी ++ CommandLine.cpp -ओ कमांडलाइन
फिर, इस कोड को निष्पादित करने के लिए, हमने निम्नलिखित कमांड-लाइन तर्कों का उपयोग किया:
$ . / कमांड लाइन 1 दो 3
इसका अर्थ है कि हमने इस C++ प्रोग्राम को चलाते समय तीन इंटीजर टाइप कमांड-लाइन आर्ग्युमेंट पास किए हैं, यानी 1, 2 और 3।
इस संशोधित कार्यक्रम का आउटपुट नीचे की छवि में दिखाया गया है:
इस सी ++ प्रोग्राम द्वारा लौटाए गए तर्कों की कुल संख्या '4' है, यानी, तीन पूर्णांक तर्क जिन्हें हमने पास किया है + ऑब्जेक्ट फ़ाइल का नाम। इस कार्यक्रम ने टर्मिनल पर 'आर्गव' वर्ण सरणी के तत्वों को भी मुद्रित किया, अर्थात, वास्तविक पूर्णांक प्रकार के तर्क जो कार्यक्रम के नाम के साथ निष्पादन के समय इस कार्यक्रम में पारित किए गए थे।
चरित्र प्रकार कमांड लाइन तर्कों के साथ C++ प्रोग्राम चलाना:
अब, हम यह देखना चाहते थे कि क्या वही C++ प्रोग्राम ठीक काम करता है जब हम इसे वर्ण प्रकार कमांड-लाइन तर्क पारित करके निष्पादित करने का प्रयास करते हैं। उसके लिए, हमें इसे और अधिक संशोधित करने की आवश्यकता नहीं थी। हमें इसे केवल चरित्र प्रकार कमांड-लाइन तर्कों के साथ निष्पादित करना था:
$ . / कमांडलाइन ए बी सी डी ई एफ
इसका अर्थ है कि हमने इस C++ प्रोग्राम को चलाने के दौरान छह-वर्ण प्रकार कमांड-लाइन तर्क पारित किए हैं, यानी, ए, बी, सी, डी, ई, और एफ।
समान C++ प्रोग्राम में कैरेक्टर टाइप कमांड-लाइन आर्ग्युमेंट पास करने के परिणामस्वरूप उत्पन्न आउटपुट नीचे दिखाया गया है:
इस सी ++ प्रोग्राम द्वारा लौटाए गए तर्कों की कुल संख्या '7' है, यानी छह-वर्ण तर्क जिन्हें हमने पास किया है + ऑब्जेक्ट फ़ाइल का नाम। इस कार्यक्रम ने टर्मिनल पर 'आर्गव' वर्ण सरणी के तत्वों को भी मुद्रित किया, अर्थात, वास्तविक चरित्र प्रकार के तर्क जो कार्यक्रम के नाम के साथ निष्पादन के समय इस कार्यक्रम में पारित किए गए थे।
निष्कर्ष:
यह आलेख दो कमांड लाइन तर्कों की चर्चा के उद्देश्य से था, जिसे 'मुख्य ()' फ़ंक्शन, यानी 'आर्गसी' और 'आर्गव' के पैरामीटर के रूप में भी जाना जाता है। हमने इन दो मापदंडों के उपयोग के बारे में बताते हुए इनके महत्व के बारे में बात की। फिर, हमने आपके साथ कुछ उदाहरण साझा किए, जो Ubuntu 20.04 में C++ में 'argc' और 'argv' के उपयोग को दर्शाते हैं। इसके अलावा, हमने यह भी स्पष्ट किया कि इन मापदंडों का उपयोग किए बिना भी, 'मुख्य ()' फ़ंक्शन पूरी तरह से अच्छी तरह से काम कर सकता है। इसलिए, एक बार जब आप इस लेख को पढ़ लेते हैं, तो आप C ++ में 'argc' और 'argv' के उपयोग को बहुत स्पष्ट रूप से समझ पाएंगे।