"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो का फ़ाइलमोड फ़ंक्शन ऑक्टल और दशमलव अनुमतियों के रूपांतरण को कैसे संभालता है?

गो का फ़ाइलमोड फ़ंक्शन ऑक्टल और दशमलव अनुमतियों के रूपांतरण को कैसे संभालता है?

2024-11-16 को प्रकाशित
ब्राउज़ करें:452

How Does Go\'s FileMode Function Handle Octal and Decimal Permissions Conversion?

गो में फ़ाइलमोड फ़ंक्शन के लिए पार्सिंग अनुमतियां

os.FileMode फ़ंक्शन फ़्लैग सेट करने से पहले विभिन्न प्रारूपों से अनुमतियों को परिवर्तित करता है। इन प्रारूपों में पूर्णांक, ऑक्टल प्रतिनिधित्व और संभावित रूप से अन्य रूप शामिल हैं।

पूर्णांक से os.FileMode में कनवर्ट करते समय, फ़ंक्शन स्पष्ट रूप से यह नहीं पहचानता है कि पूर्णांक को ऑक्टल में दर्शाया गया है या दशमलव में। दशमलव प्रतिनिधित्व को एक नियमित पूर्णांक के रूप में व्याख्या किया जाता है।

किसी संख्या का अष्टक प्रतिनिधित्व आमतौर पर यूनिक्स जैसी प्रणालियों में फ़ाइल अनुमतियों का प्रतिनिधित्व करने के लिए उपयोग किया जाता है। गो में एक अष्टक संख्या को स्पष्ट रूप से निर्दिष्ट करने के लिए, एक अग्रणी शून्य को शाब्दिक से पहले जोड़ा जाता है। उदाहरण के लिए, 0700 ऑक्टल संख्या 700 को दर्शाता है।

ध्यान देने योग्य एक महत्वपूर्ण पहलू यह है कि os.FileMode 32-बिट अहस्ताक्षरित पूर्णांक के रूप में अनुमतियों का प्रतिनिधित्व करता है। इस पूर्णांक के नौ सबसे कम महत्वपूर्ण बिट मानक यूनिक्स फ़ाइल अनुमति संरचना के अनुरूप हैं। शेष 12 सबसे महत्वपूर्ण बिट्स विशेष फ़ाइल सुविधाओं को इंगित करने के लिए आरक्षित हैं। प्रतिनिधित्व 274. हालाँकि, आपने देखा कि बनाई गई फ़ाइल पर अनुमतियाँ 254 के बजाय थीं, जो बाइनरी प्रतिनिधित्व --w-r-xr-- से मेल खाती है।

इस विसंगति को इस तथ्य के लिए जिम्मेदार ठहराया जा सकता है कि एक अग्रणी बिट दसवीं स्थिति आपके बाइनरी प्रतिनिधित्व में सेट है। यह बिट os.FileMode प्रतिनिधित्व के अप्रयुक्त क्षेत्र में स्थित है। -111-100 (ऑक्टल में 274)

: यह उन सही अनुमतियों का प्रतिनिधित्व करता है जिनकी आप अपेक्षा कर रहे थे (--w-rwxr--)।

1-010-111-100-0000000000

(विस्तारित बाइनरी प्रतिनिधित्व): दसवीं स्थिति में अग्रणी बिट अनसेट है, जिसके परिणामस्वरूप अपेक्षित अनुमतियां प्राप्त होती हैं।
  • 1-010-111-100-0000000000001 (अग्रणी बिट के साथ) सेट): यह विस्तारित बाइनरी प्रतिनिधित्व आपके द्वारा देखी गई अनुमतियों से मेल खाता है (--w-r-xr--)।
  • इसलिए, पूर्णांक से os.FileMode में कनवर्ट करते समय, यह सुनिश्चित करना महत्वपूर्ण है कि पूर्णांक प्रतिनिधित्व या तो एक दशमलव संख्या है या एक स्पष्ट रूप से निर्दिष्ट अष्टक संख्या है। यह किसी भी अनपेक्षित रूपांतरण से बच जाएगा जिसके परिणामस्वरूप फ़ाइल पर गलत अनुमतियाँ सेट हो सकती हैं।
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729743618 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3