सी ++ __FILE__ मैक्रो

Si File Maikro



मैक्रोज़ कुछ स्क्रिप्ट में कुछ विशिष्ट नाम वाले कोड के कुछ टुकड़े हैं। जब कोई मैक्रोज़ निष्पादित हो जाता है, तो उनके पीछे का कोड एक निश्चित कार्य करने के लिए निष्पादित होता है। ठीक उसी तरह, __FILE__ एक विशिष्ट फ़ाइल का पथ प्राप्त करने के लिए C++ भाषा के भीतर उपयोग किया जाने वाला एक मैक्रो है। तो, आज इस गाइड में, हम एक C++ __FILE__ मैक्रो की कार्यप्रणाली पर चर्चा करेंगे।

उदाहरण 01:

चलिए टर्मिनल कंसोल एप्लिकेशन शुरू करके C++ में __FILE__ मैक्रो का पहला उदाहरण लेते हैं। ऐसा करने के लिए आप शॉर्टकट “Ctrl+Alt+T” का उपयोग कर रहे होंगे। यदि आप शॉर्टकट कुंजी भूल गए हैं तो शेल खोलने का दूसरा तरीका मेनू गतिविधि क्षेत्र का उपयोग करना है। आपकी स्क्रीन पर टर्मिनल कंसोल लॉन्च होने के बाद, इसमें कोड करने के लिए एक नई c++ फ़ाइल बनाने का प्रयास करें। एक फ़ाइल को एक साधारण 'टच' क्वेरी के साथ बनाया जा सकता है, जैसा कि नीचे संलग्न छवि में दिखाया गया है। नई बनाई गई फ़ाइल का नाम 'टच' कीवर्ड के साथ दिया जाना चाहिए।







नई बनाई गई फ़ाइलों को कोडिंग और खोलने के लिए इसका उपयोग करने के लिए आपके उबंटू 20.04 लिनक्स सिस्टम पर कुछ संपादक स्थापित होना चाहिए। लिनक्स उपयोगकर्ताओं के बीच व्यापक रूप से जाने जाने वाले सबसे अनुशंसित संपादक जीएनयू नैनो और विम संपादक हैं। इसके अलावा, पाठ संपादक का उपयोग उस स्थिति में भी किया जा सकता है जब पहले उल्लेखित दोनों संपादक काम नहीं कर रहे हों। इसलिए, हमने पहले ही जीएनयू नैनो संपादक स्थापित कर लिया है। इस प्रकार, हम कोड बनाने के लिए फ़ाइल को खोलने और संपादित करने के लिए इसका उपयोग करेंगे। संपादक को काम करने के लिए फ़ाइल नाम के साथ 'नैनो' कीवर्ड का प्रयोग करें।





अब, नई बनाई गई C++ फ़ाइल macro.cc संपादक में कोडिंग के लिए तैयार है। आइए C++ कोड को लागू करना शुरू करें क्योंकि हम इस लेख को __FILE__ मैक्रो के काम को देखने के लिए लागू कर रहे हैं। हमने इसके शीर्ष पर मानक इनपुट-आउटपुट हेडर जोड़कर अपना C++ कोड शुरू किया है। ऐसा करने के लिए हैश चिह्न के साथ कीवर्ड 'शामिल करें' का उपयोग किया गया है। इस शीर्षलेख के बिना, सी ++ कोड का इनपुट और आउटपुट संकलन और निष्पादन पर कंसोल पर काम नहीं करेगा।





मुख्य () विधि हमारे कोड का मूल स्तंभ है क्योंकि निष्पादन इससे शुरू होता है और इसमें समाप्त होता है। मुख्य () विधि के भीतर, वास्तविक कार्य किया जाएगा। __FILE__ मैक्रो की कार्यक्षमता का वर्णन करने के लिए हम अपने main() मेथड में सिंगल लाइन कोड का उपयोग कर रहे हैं। इसलिए यहाँ पर दो मानों को तर्क के रूप में लेते हुए Printf स्टेटमेंट का उपयोग किया गया है, अर्थात, फ़ाइल नाम और मैक्रो फ़ंक्शन लेने वाली स्ट्रिंग।

__FILE__ मैक्रो का उपयोग यहां वर्तमान फ़ाइल पथ या उसके नाम को प्राप्त करने के लिए किया जाता है। जबकि “%S” का उपयोग किसी फ़ाइल के वर्तमान पथ या उसके नाम को एक स्ट्रिंग के भीतर प्रिंट करने के लिए किया जाता है। 'Ctrl+S' शॉर्टकट की मदद से आपको निष्पादन से पहले अपना कोड सहेजना होगा। अब कोड सहेजा गया है, 'Ctrl+X' शॉर्टकट का उपयोग करके शेल टर्मिनल पर वापस जाने का प्रयास करें।



जैसा कि हमने __FILE__ मैक्रो के लिए C++ कोड के साथ किया है, चलिए C++ कोड का संकलन शुरू करते हैं। संकलन के लिए, हमने C++ कोड को संकलित करने के लिए g++ कंपाइलर पहले ही इंस्टॉल कर लिया है। इसलिए, फ़ाइल 'macro.cc' को संकलित करने के लिए टर्मिनल में g ++ कंपाइलर का उपयोग किया गया है। संकलन पर, यह कुछ भी नहीं देता है, जो इंगित करता है कि सी ++ कोड मैक्रो.सीसी फ़ाइल के अंदर है, अर्थात् सही है। संकलन के बाद, कोड के निष्पादन की बारी आती है। कोड फ़ाइल चलाने के लिए, हम './.aout' सरल क्वेरी का उपयोग करते हैं। मैक्रो.सीसी फ़ाइल चलाने पर, हमें बदले में फ़ाइल का नाम मिला है। इस तरह C++ __FILE__ मैक्रो काम करता है।

उदाहरण 02:

आइए, Ubuntu 20.04 सिस्टम के भीतर C++ __FILE__ मैक्रो की कार्यक्षमता को गहराई से देखने के लिए एक और उदाहरण लें। जैसा कि हमने देखा है कि C++ __FILE__ मैक्रो कैसे काम करता है जब इसका उपयोग उस फ़ाइल के फ़ाइल पथ को लाने के लिए किया जाता है जिसमें इसका उल्लेख किया गया है।

अब, हम जिस फ़ाइल पर काम कर रहे हैं, उसके अलावा फ़ाइल पथ या फ़ाइल का नाम प्राप्त करने के लिए हम C++ __FILE__ मैक्रो का उपयोग करेंगे। इसलिए, हमने कोड को अपडेट करने के लिए GNU नैनो एडिटर में वही फाइल macro.cc खोली है। हमने शामिल कीवर्ड के साथ मानक इनपुट-आउटपुट हेडर जोड़ा है और पूर्णांक रिटर्न प्रकार के साथ एक मुख्य () फ़ंक्शन को इनिशियलाइज़ किया है।

मुख्य () पद्धति के भीतर, वर्तमान फ़ाइल पथ प्राप्त करने के लिए पहला प्रिंट स्टेटमेंट पुराने के समान है, जिस पर हम वर्तमान में काम कर रहे हैं। उसके बाद, हमने #line कीवर्ड का उपयोग किसी अन्य फ़ाइल नाम के साथ किया है, अर्थात, 'new.txt' अगली पंक्ति में। यह वर्तमान फ़ाइल के अलावा अन्य फ़ाइल निर्दिष्ट करने के लिए है जिसके लिए हम उसका नाम या पथ प्राप्त करेंगे। C++ __FILE__ मैक्रो की मदद से फाइल 'new.txt' के पाथ को प्रिंट करने के लिए अगले प्रिंटफ स्टेटमेंट का उपयोग किया गया है। संकलन के समय किसी भी असुविधा से बचने के लिए अपने नए अपडेट किए गए कोड को सेव करें। ऐसा करने के लिए 'Ctrl+S' का प्रयोग करें।

अपडेट की गई फ़ाइल को सहेजने के बाद, इसे अपने कीबोर्ड से 'Ctrl+X' के माध्यम से छोड़ दें। अब, हम शेल स्क्रीन पर वापस आ गए हैं।

अपडेट की गई फ़ाइल को संकलित करते हैं। फ़ाइल macro.cc के नाम से ऐसा करने के लिए g++ कंपाइलर का उपयोग करें। सफल संकलन के बाद, कंसोल में './a.out' कमांड के साथ कोड चलाएँ। आउटपुट पहले एक वर्तमान फ़ाइल का पथ दिखाता है, फिर दूसरी फ़ाइल का पथ, 'new.txt' शेल स्क्रीन पर प्रदर्शित किया गया है। देखें कि शेल पर फ़ाइल पथ प्रदर्शित करने के लिए __FILE__ मैक्रो का उपयोग करना कितना आसान है।

उदाहरण 03:

C++ में __FILE__ मैक्रो के साथ __LINE__ मैक्रो पर एक नजर डालते हैं। __LINE__ मैक्रो उस फ़ाइल की लाइन संख्या प्रदर्शित करेगा जिस पर मैक्रो का उपयोग किया गया है। इसलिए, एक ही फाइल खोलें और दोनों प्रिंटफ स्टेटमेंट को अपडेट करें। C++ __LINE__ मैक्रो से पहले, हमने C++ __LINE__ मैक्रो जोड़ा है। यह __LINE__macro वर्तमान फ़ाइल की लाइन संख्या प्राप्त कर रहा है जहाँ __FILE__ पहले आता है। जबकि अगले __LINE__ मैक्रो को दूसरी फ़ाइल की पहली पंक्ति संख्या प्राप्त होगी क्योंकि हमने पहले ही कोड में फ़ाइल नाम के साथ पंक्ति संख्या का उल्लेख किया है।

फ़ाइल को सहेजने और छोड़ने के बाद, हम शेल टर्मिनल पर वापस आ गए हैं। हम C++ macro.cc फ़ाइल कोड को संकलित करने के लिए उसी g++ कमांड का उपयोग कर रहे हैं। सफल संकलन निष्पादन आदेश की ओर जाता है। अब ऐसा करने के लिए यहाँ “./a.out” कमांड का उपयोग किया जाता है। निष्पादन हमें बताता है कि पहली फ़ाइल, यानी वर्तमान फ़ाइल लाइन 3 में है, जबकि __FILE__ मैक्रो कोड में उल्लिखित दूसरी फ़ाइल की पहली पंक्ति पर है।

निष्कर्ष:

इस आलेख में मैक्रोज़ की परिभाषा है और उबंटू 20.04 सिस्टम में C++ __FILE__ मैक्रो के उपयोग पर चर्चा करता है। C++ __FILE__ मैक्रो की कार्यप्रणाली को और स्पष्ट करने के लिए C++ __LINE__ मैक्रो पर भी कुछ उदाहरणों में चर्चा की गई है। संक्षेप में, हमें उम्मीद है कि यह लेख आपको C++ __FILE__macro के सर्वोत्तम रूप में मदद करेगा।