Wie os.FileMode Berechtigungen vor dem Setzen von Flags konvertiert
Ursprüngliches Anliegen
Bei Verwendung der Wenn Sie die Funktion os.FileMode mit Oktal- oder Dezimalzahlen verwenden, scheinen die resultierenden Dateiberechtigungen nicht immer dem erwarteten Verhalten zu entsprechen. Insbesondere führt die Übergabe einer Dezimalzahl (ohne führende Null) zu anderen Dateiattributen als die Übergabe des Oktaläquivalents.
Konvertierungslogik
os.FileMode akzeptiert eine Ganzzahl als Eingabe und stellt es intern als 32-Bit-Ganzzahl ohne Vorzeichen dar. Die neun niedrigstwertigen Bits entsprechen den Unix-Dateiberechtigungen, während die restlichen 12 Bits ungenutzt sind. Bei der Konvertierung einer Oktalzahl in eine Ganzzahl interpretiert die Sprachspezifikation die Zahl als Basis 8, wenn sie mit einer führenden Null („0“) beginnt. Andernfalls wird die Zahl als Basis 10 interpretiert.
Beispiel
Betrachten Sie die Oktalzahl „0700“, die die Berechtigungen „rwx------“ darstellt.
Zusätzlicher Hinweis
Die nicht verwendeten 12 Bits in der os.FileMode-Darstellung geben an spezielle Dateifunktionen. Diese sind jedoch für grundlegende Dateiberechtigungen nicht relevant.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3