ホームページ > バックエンド開発 > Golang > os.FileMode はフラグを設定する前にどのようにアクセス許可を変換しますか?

os.FileMode はフラグを設定する前にどのようにアクセス許可を変換しますか?

Susan Sarandon
リリース: 2024-10-25 04:54:02
オリジナル
420 人が閲覧しました

How Does os.FileMode Convert Permissions Before Setting Flags?

フラグを設定する前に os.FileMode がアクセス許可を変換する方法

元々の懸念事項

os.FileMode 関数に 8 進数または 10 進数を指定すると、結果として得られるファイルのアクセス許可が予期される動作と必ずしも一致するとは限りません。具体的には、10 進数 (先頭のゼロなし) を渡すと、同等の 8 進数を渡す場合とは異なるファイル属性になります。

変換ロジック

os.FileMode は入力として整数を受け入れます。内部的には 32 ビットの符号なし整数として表されます。最下位 9 ビットは Unix ファイルのアクセス許可に対応し、残りの 12 ビットは未使用です。 8 進数を整数に変換する場合、言語仕様では、先頭がゼロ (「0」) で始まる数値を基数 8 として解釈します。それ以外の場合は、数値を基数 10 として解釈します。

アクセス許可「rwx------」を表す 8 進数「0700」について考えてみましょう。

  • os.FileMode に「0700」を渡すと、正しい権限が設定されます。
  • os.FileMode に「700」(先頭のゼロなし) を渡すと、言語仕様では数字で始まるため、自動的に 8 進数として解釈されるため、正しいアクセス許可が設定されます。
  • 「1274」(「0700」の 10 進表現) を os.FileMode に渡すと、間違ったアクセス許可が設定されます。セット。これは、言語仕様が「1274」を基数 10 の数値として解釈するためです。

補足

os.FileMode 表現内の未使用の 12 ビットは、次のことを示します。特殊なファイル機能。ただし、これらは基本的なファイル権限には関係ありません。

以上がos.FileMode はフラグを設定する前にどのようにアクセス許可を変換しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート