C . में Linux chdir सिस्टम कॉल

C Mem Linux Chdir Sistama Kola



डिवाइस की वर्तमान कार्यशील निर्देशिका में परिवर्तन 'CHDIR' पद्धति का उपयोग करके किया जाता है। विभिन्न परिस्थितियों में, आप अपने डिवाइस के वर्तमान कार्यशील फ़ोल्डर को बदलने का निर्णय ले सकते हैं। या आप अपनी वर्तमान कार्यशील निर्देशिका के बजाय किसी फ़ोल्डर से C स्क्रिप्ट चलाना चाहते हैं। नतीजतन, उस विशिष्ट सी कोड को चलाने के लिए, आपको अपने वर्तमान कार्यशील फ़ोल्डर को संशोधित करना होगा। इसके अतिरिक्त, कोडिंग भाषा C की 'getcwd' विधि का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि वर्तमान कार्यशील फ़ोल्डर कब बदल गया है। अब, हम एक कार्यशील निर्देशिका को बदलने के लिए इस लेख में C के chdir () फ़ंक्शन का उपयोग करेंगे।

उदाहरण 01:

आइए लिनक्स ऑपरेटिंग सिस्टम में सी के chdir () फ़ंक्शन के काम से शुरू करें। इसके लिए, आपको यह सुनिश्चित करना होगा कि सी का कंपाइलर पहले से ही आपके अंत में आरोहित है। ज्यादातर मामलों में, हम अपने काली लिनक्स ऑपरेटिंग सिस्टम में सी के 'जीसीसी' कंपाइलर का उपयोग करते हैं। इस उदाहरण से शुरू करने के लिए, हमारे पास 'सी' एक्सटेंशन वाली सी फाइल होनी चाहिए। हमने इसे p1.c नाम दिया और इसे नीचे प्रस्तुत लिनक्स के 'नैनो' संपादक के साथ खोलने का प्रयास किया।







जब आपकी फाइल एडिटर में ओपन हो जाती है, तो आपको उसमें कोडिंग शुरू करनी होती है। हम अपने सी प्रोग्राम को सी के मुख्य हेडर पुस्तकालयों को जोड़कर शुरू कर रहे हैं जो कि किसी भी सी प्रोग्राम में जरूरी हैं। इसलिए, stdio.h और unistd.h हेडर लाइब्रेरी का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि प्रोग्राम के भीतर मानक इनपुट और आउटपुट प्रवाहित हो सकते हैं। unistd.h हेडर का उपयोग सी के कुछ मानक कार्यों का उपयोग करने के लिए किया गया है जो विशेष रूप से इस उदाहरण के लिए आवश्यक हैं। अब, हमने निष्पादन पर स्वचालित रूप से चलाने के लिए इस कोड में C का मुख्य () ड्राइवर फ़ंक्शन शुरू किया है। वर्ण प्रकार सरणी चर 'पथ' को 100 के आकार के साथ परिभाषित किया गया है क्योंकि यह केवल 100 मानों को संग्रहीत करता है।



Printf () फ़ंक्शन स्टेटमेंट का उपयोग 'getcwd ()' फ़ंक्शन का उपयोग करके इस C फ़ाइल के वर्तमान कार्यशील निर्देशिका फ़ोल्डर को प्रिंट करने के लिए किया गया है। यह फ़ंक्शन वर्तमान कार्यशील निर्देशिका को प्राप्त करने के लिए 100 के आकार के साथ 'पथ' सरणी चर का उपयोग करता है और इसे प्रदर्शन के लिए प्रिंटफ () फ़ंक्शन स्टेटमेंट में पास करता है। अब, chdir () फ़ंक्शन का उपयोग करने का समय आ गया है। हम यह निर्दिष्ट करने के लिए किसी भी प्रकार के वर्णों को पारित कर सकते हैं कि क्या हम निर्देशिका में आगे बढ़ना चाहते हैं या उसी निर्देशिका में पीछे की दिशा में आगे बढ़ना चाहते हैं।



इसलिए, हमने chdir () फ़ंक्शन स्टेटमेंट में '..' वर्णों को वर्तमान कार्यशील निर्देशिका से पीछे की दिशा में स्थानांतरित करने की कोशिश की है यानी वर्तमान कार्यशील निर्देशिका से एक स्तर नीचे। ध्यान दें कि अभी, हम काली लिनक्स सिस्टम की हमारी मुख्य 'लिनक्स' वर्किंग डायरेक्टरी के प्रोजेक्ट फोल्डर में काम कर रहे हैं। अब, हम 'chdir' फ़ंक्शन का उपयोग करने के बाद 'प्रोजेक्ट' निर्देशिका के बजाय 'लिनक्स' निर्देशिका में हैं। अब, हमने 'getcwd' फ़ंक्शन का उपयोग करके वर्तमान कार्यशील निर्देशिका को प्रदर्शित करने के लिए एक बार फिर 'printf ()' फ़ंक्शन स्टेटमेंट की कोशिश की। हमारा प्रोग्राम रिटर्न 0 स्टेटमेंट के साथ समाप्त होता है।





इस सी प्रोग्राम को सहेजने के बाद, हमें इसे 'जीसीसी' कंपाइलर का उपयोग करके संकलित करने की आवश्यकता है जिसे हमने पहले ही अपने अंत में कॉन्फ़िगर किया है। इस gcc निर्देश का उपयोग करते हुए, हमने नीचे प्रदर्शित –o विकल्प का उपयोग करके “p1.out” नाम की इस C फ़ाइल की एक ऑब्जेक्ट फ़ाइल बनाई है।



अब, जब आप अपने लिनक्स टर्मिनल में इसकी ऑब्जेक्ट फ़ाइल चलाते हैं, तो आपको chdir () फ़ंक्शन के उपयोग से पहले प्रोग्राम द्वारा उपयोग की जाने वाली कार्यशील निर्देशिका मिल जाएगी। Chdir () फ़ंक्शन के उपयोग के बाद, हम नीचे एक निर्देशिका में चले गए और उस विशेष निर्देशिका 'होम' को प्रदर्शित किया गया।

उदाहरण 02:



उसी हेडर लाइब्रेरी का उपयोग करके, हमने यह प्रोग्राम कोड शुरू किया है। इस कार्यक्रम के मुख्य () फ़ंक्शन के भीतर, हम इसमें chdir () फ़ंक्शन का उपयोग करते हुए 'if' स्टेटमेंट का उपयोग कर रहे हैं।

यह फ़ंक्शन जाँच करेगा कि '/ उपयोगकर्ता' सिस्टम में मौजूद है या नहीं '/ उपयोगकर्ता! = 0' शर्त सेट करके। यदि वर्तमान सिस्टम में निर्देशिका मौजूद नहीं है, तो संबंधित त्रुटि संदेश प्रदर्शित करने के लिए पेरर फ़ंक्शन कॉल का उपयोग किया जाएगा अर्थात 'उपयोगकर्ता निर्देशिका मौजूद नहीं है। हम इसके भीतर chdir () फ़ंक्शन का उपयोग करके एक और 'if' स्टेटमेंट का उपयोग कर रहे हैं। यहां chdir() फ़ंक्शन का उपयोग करने का उद्देश्य भी वही है जैसा कि हमने उपरोक्त if स्टेटमेंट में किया था, जो यह जांचने के लिए है कि निर्देशिका मौजूद है या नहीं '/temp'!=0 स्थिति का उपयोग कर रही है। एकमात्र अंतर '/ उपयोगकर्ता' के बजाय एक नई निर्देशिका नाम '/ अस्थायी' का उपयोग है जैसा कि आप नीचे दिए गए कोड छवि से देख सकते हैं।







यदि सिस्टम में /temp निर्देशिका मौजूद नहीं है, तो 'if' कथन में प्रयुक्त पेरर फ़ंक्शन एक त्रुटि संदेश '/temp निर्देशिका मौजूद नहीं है' जैसा कि नीचे दी गई छवि से प्रदर्शित होता है। दोनों 'if' कथनों के उपयोग के बाद, हम इस कोड को C के रिटर्न 0 स्टेटमेंट के साथ समाप्त कर रहे हैं। अब, कार्यक्रम समाप्त हो गया है। हम अपने सी कोड को उसके निष्पादन से पहले Ctrl + S शॉर्टकट का उपयोग करके सहेजते रहे हैं।





अब जब फ़ाइल आपके सिस्टम में सहेज ली गई है, तो हमें सी कोड को 'gcc' कंपाइलर के साथ संकलित करना होगा जिसे हमने पहले ही अपने अंत में माउंट किया है। इस निर्देश का उपयोग करते हुए, हम निर्देश में –o विकल्प का उपयोग करके इसकी ऑब्जेक्ट फ़ाइल “p2.out” बना रहे हैं।





'./' वर्णों के साथ बनाई गई ऑब्जेक्ट फ़ाइल 'p2.out' को निष्पादित करने के बाद, हमने सीखा कि 'chdir' के पथ में उल्लिखित दोनों निर्देशिकाएं सिस्टम में मौजूद नहीं हैं या शेल में प्रदर्शित त्रुटि प्रदर्शित कर रही है यह ठीक से।



निष्कर्ष

आज के इस लेख में, हमने काली लिनक्स ऑपरेटिंग सिस्टम में C के chdir () फ़ंक्शन के उपयोग का प्रदर्शन किया है। पहला उदाहरण दिखाता है कि कैसे chdir () फ़ंक्शन का उपयोग एक कार्यशील निर्देशिका को बदलने के लिए किया जा सकता है, यानी एक निर्देशिका से दूसरी निर्देशिका में जाना। सी का अंतिम उदाहरण दर्शाता है कि हम कैसे जांच सकते हैं कि chdir() के पथ में निर्दिष्ट वर्तमान कार्यशील निर्देशिका मौजूद है या नहीं।