„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie konvertiert os.FileMode Berechtigungen, bevor Flags gesetzt werden?

Wie konvertiert os.FileMode Berechtigungen, bevor Flags gesetzt werden?

Veröffentlicht am 19.11.2024
Durchsuche:874

How Does os.FileMode Convert Permissions Before Setting Flags?

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.

  • Die Übergabe von „0700“ an os.FileMode führt dazu, dass die richtigen Berechtigungen festgelegt werden.
  • Die Übergabe von „700“ (ohne führende Null) an os.FileMode führt ebenfalls dazu, dass Es werden die richtigen Berechtigungen festgelegt, da die Sprachspezifikation es automatisch als Oktal interpretiert, da es mit einer Ziffer beginnt.
  • Die Übergabe von „1274“ (die Dezimaldarstellung von „0700“) an os.FileMode führt zu falschen Berechtigungen Satz. Dies liegt daran, dass die Sprachspezifikation „1274“ als Zahl zur Basis 10 interpretiert.

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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729743262 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

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