गो में फ़ाइलमोड फ़ंक्शन के लिए पार्सिंग अनुमतियां
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
(विस्तारित बाइनरी प्रतिनिधित्व): दसवीं स्थिति में अग्रणी बिट अनसेट है, जिसके परिणामस्वरूप अपेक्षित अनुमतियां प्राप्त होती हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3