フラグを設定する前に os.FileMode でアクセス許可を変換する方法
元々の問題
os.FileMode 関数に 8 進数または 10 進数を指定すると、結果として得られるファイルのアクセス許可が予期される動作と必ずしも一致するとは限りません。具体的には、10 進数 (先頭のゼロなし) を渡すと、同等の 8 進数を渡す場合とは異なるファイル属性になります。
Conversion Logic
os.FileMode は入力として整数を受け入れます。内部的には 32 ビットの符号なし整数として表されます。最下位 9 ビットは Unix ファイルのアクセス許可に対応し、残りの 12 ビットは未使用です。 8 進数を整数に変換する場合、言語仕様では、先頭がゼロ (「0」) で始まる数値を基数 8 として解釈します。それ以外の場合は、数値を基数 10 として解釈します。
例
権限「rwx------」を表す 8 進数「0700」を考えてみましょう。
補足
os.FileMode 表現内の未使用の 12 ビットは、次のことを示します。特殊なファイル機能。ただし、これらは基本的なファイル権限には関係ありません。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3