كيف يقوم os.FileMode بتحويل الأذونات قبل وضع العلامات
المشكلة الأصلية
عند استخدام os.FileMode بأرقام ثماني أو عشرية، فإن أذونات الملف الناتجة لا تبدو دائمًا متطابقة مع السلوك المتوقع. على وجه التحديد، يؤدي تمرير رقم عشري (بدون الصفر البادئ) إلى سمات ملف مختلفة عن تمرير المكافئ الثماني.
منطق التحويل
os.FileMode يقبل عددًا صحيحًا كمدخل ويمثله داخليًا كعدد صحيح غير موقّع 32 بت. تتوافق البتات التسعة الأقل أهمية مع أذونات ملف Unix، بينما لا يتم استخدام البتات الـ 12 المتبقية. عند تحويل رقم ثماني إلى عدد صحيح، تفسر مواصفات اللغة الرقم على أنه الأساس 8 إذا كان يبدأ بصفر بادئ ("0"). بخلاف ذلك، فإنه يفسر الرقم على أنه الأساس 10.
مثال
ضع في الاعتبار الرقم الثماني "0700" الذي يمثل الأذونات "rwx------".تشير الـ 12 بت غير المستخدمة في تمثيل os.FileMode إلى ميزات الملفات الخاصة. ومع ذلك، هذه ليست ذات صلة بأذونات الملفات الأساسية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3