जंग एसटीडी :: लिनक्स में ओएस

Janga Esatidi Linaksa Mem O Esa



रस्ट में, std::os मॉड्यूल ऑपरेटिंग सिस्टम की कार्यक्षमता पर एक अमूर्तता प्रदान करता है। यह हमें अंतर्निहित ऑपरेटिंग सिस्टम के साथ पर्यावरण चर, फ़ाइल सिस्टम संचालन, प्रक्रिया प्रबंधन, और बहुत कुछ के साथ काम करने की अनुमति देता है।

इस उदाहरण में, हम कुछ मौलिक कार्यों को शामिल करेंगे जिन्हें आप यूनिक्स पर रस्ट std::os मॉड्यूल का उपयोग करके कर सकते हैं।







यह याद रखना अच्छा है कि यह एक व्यापक मॉड्यूल है और इसमें यूनिक्स से संबंधित विभिन्न कार्यों के लिए कई प्रकार और कार्य शामिल हैं। इसलिए, कृपया संबंधित प्रक्रियाओं पर संदर्भ के लिए दस्तावेज़ीकरण पर विचार करें।



लिनक्स में जंग ओएस

लिनक्स में, हम यूनिक्स-विशिष्ट कार्यों और प्रकारों तक पहुंच सकते हैं जो कि std::os::unix मॉड्यूल द्वारा प्रदान किए जाते हैं, जो कि रस्ट में std::os मॉड्यूल का एक उप-मॉड्यूल है।



यह मॉड्यूल रस्ट मानक पुस्तकालय का हिस्सा है और इसलिए आपको किसी बाहरी क्रेट या निर्भरता को स्थापित करने की आवश्यकता नहीं है।





आइए हम कुछ बुनियादी एपीआई और संचालन को कवर करें जो हम इस मॉड्यूल से लिनक्स सिस्टम पर कर सकते हैं।

पर्यावरण चर तक पहुँचना

हम std::env मॉड्यूल का उपयोग करके पर्यावरण चर का उपयोग कर सकते हैं। उदाहरण के लिए, std::env::var(“PATH”) PATH पर्यावरण चर का मान प्राप्त करता है।



निम्नलिखित उदाहरण कार्यक्रम पर विचार करें:

एसटीडी का प्रयोग करें :: env;
एसटीडी का प्रयोग करें :: एफएफआई :: ओएसस्ट्रिंग;

फन हाथ ( ) {
// एक विशिष्ट पर्यावरण चर तक पहुँचें
अगर होने देना ठीक ( कीमत ) = एनवी :: वर ( 'वेलैंड_डिस्प्ले' ) {
println ! ( 'WAYLAND_DISPLAY={}' , कीमत ) ;
}

// सभी पर्यावरण चर पर पुनरावृति
के लिए ( मौलिक मूल्य ) में env :: Wars_us ( ) {
होने देना key_string = key.to_string_lossy ( ) ;
होने देना value_string = value.to_string_lossy ( ) ;
println ! ( '{}:{}' , की_स्ट्रिंग, वैल्यू_स्ट्रिंग ) ;
}

// एक विशिष्ट पर्यावरण चर तक पहुँचें जैसा एक ` ओएसस्ट्रिंग `
अगर होने देना कुछ ( कीमत ) = env :: var_us ( 'होस्टटाइप' ) {
// बदलना ` ओएसस्ट्रिंग ` एक के लिए ` डोरी ` अगर आवश्यकता है
अगर होने देना कुछ ( value_str ) = value.to_str ( ) {
println ! ( 'होस्ट टाइप = {}' , value_str ) ;
}
}
}


दिए गए उदाहरण में, हम आवश्यक मॉड्यूल आयात करके प्रारंभ करते हैं। इस मामले में, हम std::env और std::ff::OsString में रुचि रखते हैं।

एक विशिष्ट पर्यावरण चर का उपयोग करने के लिए, हम env::var फ़ंक्शन का उपयोग कर सकते हैं और उस मान का नाम पास कर सकते हैं जिसे हम प्राप्त करना चाहते हैं। इस स्थिति में, हमें WAYLAND_DISPLAY चर का मान मिलता है।

फ़ंक्शन चर के मान को परिणाम प्रकार के रूप में लौटाता है।

हम env::vars_os फ़ंक्शन का उपयोग करके सभी पर्यावरण चरों पर पुनरावृति भी कर सकते हैं। यह पर्यावरण चर के कुंजी-मूल्य जोड़े के साथ एक पुनरावर्तक लौटाता है। यह नोट करना अच्छा है कि मान एक OsString प्रकार के रूप में लौटाए जाते हैं। फिर हम उन्हें to_string_lossy फ़ंक्शन का उपयोग करके स्ट्रिंग मानों में परिवर्तित कर सकते हैं।

हम env::var_os फ़ंक्शन का उपयोग करके विशिष्ट पर्यावरण चर तक भी पहुँच सकते हैं। यह <विकल्प प्रकार लौटाना चाहिए जिसे हम to_str() फ़ंक्शन का उपयोग करके स्ट्रिंग में परिवर्तित कर सकते हैं।

परिणामी आउटपुट इस प्रकार है:

WAYLAND_DISPLAY = वेलैंड- 0
होस्टटाइप =x86_64

ओएस मॉड्यूल का उपयोग कर एफएस संचालन

जैसा कि आप अनुमान लगा सकते हैं, ओएस मॉड्यूल फाइल सिस्टम से संबंधित संचालन करने के लिए विभिन्न कार्यों और विधियों को प्रदान करता है।

निम्नलिखित प्रोग्राम लें जो लिनक्स में std :: os मॉड्यूल का उपयोग करके किए जा सकने वाले विभिन्न कार्यों को प्रदर्शित करता है:

एसटीडी का प्रयोग करें :: एफएस;

फन हाथ ( ) {
// पढ़ें फ़ाइल
अगर होने देना ठीक ( अंतर्वस्तु ) = एफएस :: read_to_string ( '/ होम/डेबियन/.bashrc' ) {
println ! ( 'बैशआरसी: {}' , सामग्री ) ;
}

// एक नई निर्देशिका बनाएँ
अगर होने देना ग़लती होना ( ग़लती होना ) = एफएस :: create_dir ( '/ घर/डेबियन/new_dir' ) {
eprintln ! ( 'निर्देशिका बनाने में विफल: {}' , गलती ) ;
}

// ए हटाएं फ़ाइल
अगर होने देना ग़लती होना ( ग़लती होना ) = एफएस::remove_file ( '/home/debian/remove_me.txt' ) {
eprintln ! ( 'फ़ाइल निकालने में विफल: {}' , गलती ) ;
}
}


दिए गए उदाहरण में, हम प्रदर्शित करते हैं कि fs::read_to_string() विधि का उपयोग करके हम फ़ाइल की सामग्री को कैसे पढ़ सकते हैं। विधि लक्ष्य फ़ाइल के लिए पथ लेती है और फ़ाइल सामग्री को एक स्ट्रिंग के रूप में लौटाती है।

हम fs::create_dir() फ़ंक्शन का उपयोग करके एक नई निर्देशिका भी बना सकते हैं और लक्ष्य निर्देशिका के पथ को पैरामीटर के रूप में पारित कर सकते हैं।

अंत में, हम fs::remove_file() फ़ंक्शन का उपयोग करके किसी विशिष्ट फ़ाइल को निकाल सकते हैं और लक्ष्य फ़ाइल को पैरामीटर के रूप में पास कर सकते हैं।

टिप्पणी: प्रदान किए गए उदाहरण कुछ बुनियादी उदाहरण हैं कि कैसे std::fs मॉड्यूल का उपयोग करके लिनक्स पर फ़ाइल सिस्टम संचालन किया जाए। जंग यहां प्रदर्शित विधियों और कार्यों का एक व्यापक संग्रह प्रदान करता है। अधिक जानने के लिए दस्तावेज़ देखें।

प्रक्रिया प्रबंधन ओएस मॉड्यूल का उपयोग करना

जैसा कि आप अनुमान लगा सकते हैं, OS मॉड्यूल सिस्टम में प्रक्रियाओं के साथ काम करने के लिए सबमॉड्यूल और सुविधाएँ प्रदान करता है।

निम्न उदाहरण कोड लें:

एसटीडी का प्रयोग करें :: प्रक्रिया :: { आज्ञा, बाहर निकलना } ;

फन हाथ ( ) {
// चलाएँ रास आज्ञा
होने देना आउटपुट = कमांड :: नया ( 'एलएस' )
तर्क ( '-द' )
आउटपुट ( )
।अपेक्षा करना ( 'कमांड निष्पादित करने में विफल' ) ;

अगर आउटपुट.स्टेटस.सफलता ( ) {
होने देना stdout = स्ट्रिंग :: from_utf8_lossy ( और output.stdout ) ;
println ! ( 'कमांड आउटपुट: \एन {}' , स्टडआउट ) ;
} अन्य {
होने देना stderr = स्ट्रिंग :: from_utf8_lossy ( और output.stderr ) ;
eprintln ! ( 'आदेश विफल: \एन {}' , स्टेडरर ) ;
बाहर निकलना ( 1 ) ;
}
}


दिए गए उदाहरण में, हम आवश्यक मॉड्यूल आयात करके प्रारंभ करते हैं। इस मामले में, हमें std :: प्रक्रिया सबमॉड्यूल से 'कमांड' और 'निकास' विधियों की आवश्यकता है।

फिर हम 'ls' कमांड चलाने के लिए कमांड :: नया () फ़ंक्शन का उपयोग करते हैं और कमांड को तर्क पास करते हैं।

यदि सफल हो, तो आदेश को वर्तमान कार्यशील निर्देशिका के लिए निर्देशिका सूची को निम्नानुसार वापस करना चाहिए:

निष्कर्ष

हमने पता लगाया कि लिनक्स और यूनिक्स जैसी प्रणालियों में कई संचालन करने के लिए std::os मॉड्यूल और सबमॉड्यूल द्वारा प्रदान किए जाने वाले विभिन्न कार्यों और विधियों का उपयोग कैसे करें। याद रखें कि std::os मॉड्यूल एक व्यापक मॉड्यूल है जिसमें इस ट्यूटोरियल में प्रदर्शित सुविधाओं की तुलना में सुविधाओं का एक व्यापक संग्रह शामिल है।