Bagaimana os.FileMode Menukar Kebenaran Sebelum Menetapkan Bendera
Kebimbangan Asal
Apabila menggunakan os.FileMode berfungsi dengan nombor perlapanan atau perpuluhan, kebenaran fail yang terhasil tidak selalunya kelihatan sepadan dengan tingkah laku yang dijangkakan. Secara khususnya, menghantar nombor perpuluhan (tanpa mendahului sifar) menghasilkan atribut fail yang berbeza daripada melepasi nilai perlapanan.
Logik Penukaran
os.FileMode menerima integer sebagai input dan secara dalaman mewakilinya sebagai integer tidak bertanda 32-bit. Sembilan bit paling tidak ketara sepadan dengan kebenaran fail Unix, manakala baki 12 bit tidak digunakan. Apabila menukar nombor perlapanan kepada integer, spesifikasi bahasa mentafsirkan nombor itu sebagai asas 8 jika ia bermula dengan sifar pendahuluan ("0"). Jika tidak, ia mentafsir nombor sebagai asas 10.
Contoh
Pertimbangkan nombor perlapanan "0700" yang mewakili kebenaran "rwx------".
Nota Tambahan
12 bit yang tidak digunakan dalam os.Perwakilan Mod Fail menunjukkan ciri fail khas. Walau bagaimanapun, ini tidak berkaitan untuk kebenaran fail asas.
Atas ialah kandungan terperinci Bagaimanakah os.FileMode Menukar Kebenaran Sebelum Menetapkan Bendera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!