Heim >Backend-Entwicklung >Golang >Wie konvertiert os.FileMode Berechtigungen, bevor Flags gesetzt werden?

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

Susan Sarandon
Susan SarandonOriginal
2024-10-25 04:54:02415Durchsuche

How Does os.FileMode Convert Permissions Before Setting Flags?

Wie os.FileMode Berechtigungen vor dem Setzen von Flags konvertiert

Ursprüngliches Anliegen

Bei Verwendung des 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 ganze Zahl 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 zeigen an spezielle Dateifunktionen. Diese sind jedoch für grundlegende Dateiberechtigungen nicht relevant.

Das obige ist der detaillierte Inhalt vonWie konvertiert os.FileMode Berechtigungen, bevor Flags gesetzt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn