ओएस.फ़ाइलमोड फ़्लैग सेट करने से पहले अनुमतियों को कैसे परिवर्तित करता है
मूल चिंता
का उपयोग करते समय ऑक्टल या दशमलव संख्याओं के साथ os.FileMode फ़ंक्शन, परिणामी फ़ाइल अनुमतियाँ हमेशा अपेक्षित व्यवहार से मेल नहीं खाती हैं। विशेष रूप से, एक दशमलव संख्या (बिना अग्रणी शून्य के) पास करने पर ऑक्टल समतुल्य को पास करने की तुलना में अलग-अलग फ़ाइल विशेषताएँ प्राप्त होती हैं। और आंतरिक रूप से इसे 32-बिट अहस्ताक्षरित पूर्णांक के रूप में दर्शाता है। नौ सबसे कम महत्वपूर्ण बिट्स यूनिक्स फ़ाइल अनुमतियों के अनुरूप हैं, जबकि शेष 12 बिट्स अप्रयुक्त हैं। किसी अष्टक संख्या को पूर्णांक में परिवर्तित करते समय, भाषा विनिर्देश संख्या को आधार 8 के रूप में व्याख्या करता है यदि यह अग्रणी शून्य ("0") से शुरू होता है। अन्यथा, यह संख्या को आधार 10 के रूप में व्याख्या करता है।
"0700" को os.FileMode में पास करने पर सही अनुमतियां सेट हो जाएंगी।
"700" (बिना शून्य आगे बढ़ाए) os.FileMode में पास करने पर भी सही अनुमतियां सेट हो जाएंगी। सही अनुमतियाँ सेट की जा रही हैं, क्योंकि भाषा विनिर्देश स्वचालित रूप से इसे अष्टक के रूप में व्याख्या करता है क्योंकि यह एक अंक से शुरू होता है। तय करना। ऐसा इसलिए है क्योंकि भाषा विनिर्देश "1274" को आधार 10 संख्या के रूप में व्याख्या करता है। विशेष फ़ाइल सुविधाएँ. हालाँकि, ये बुनियादी फ़ाइल अनुमतियों के लिए प्रासंगिक नहीं हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3