os.FileMode を適切にインスタンス化する方法
Go では、os.FileMode 型はファイルのアクセス許可を指定するファイル モード ビットを表します。いくつかの例とチュートリアルでファイルの作成が示されていますが、多くは os.FileMode の適切なインスタンス化をバイパスし、代わりにアクセス許可ビットの設定に直接依存しています。
チャレンジ
メソッドを探します提供された UID、GID、および 8 進数で表される権限の値を利用して、os.FileMode を正しくインスタンス化します。
解決策
事前定義された定数に依存する代わりに、以下を使用できます。
const ( OS_READ = 04 OS_WRITE = 02 OS_EX = 01 OS_USER_SHIFT = 6 OS_GROUP_SHIFT = 3 OS_OTH_SHIFT = 0 OS_USER_R = OS_READ << OS_USER_SHIFT OS_USER_W = OS_WRITE << OS_USER_SHIFT OS_USER_X = OS_EX << OS_USER_SHIFT OS_USER_RW = OS_USER_R | OS_USER_W OS_USER_RWX = OS_USER_RW | OS_USER_X OS_GROUP_R = OS_READ << OS_GROUP_SHIFT OS_GROUP_W = OS_WRITE << OS_GROUP_SHIFT OS_GROUP_X = OS_EX << OS_GROUP_SHIFT OS_GROUP_RW = OS_GROUP_R | OS_GROUP_W OS_GROUP_RWX = OS_GROUP_RW | OS_GROUP_X OS_OTH_R = OS_READ << OS_OTH_SHIFT OS_OTH_W = OS_WRITE << OS_OTH_SHIFT OS_OTH_X = OS_EX << OS_OTH_SHIFT OS_OTH_RW = OS_OTH_R | OS_OTH_W OS_OTH_RWX = OS_OTH_RW | OS_OTH_X OS_ALL_R = OS_USER_R | OS_GROUP_R | OS_OTH_R OS_ALL_W = OS_USER_W | OS_GROUP_W | OS_OTH_W OS_ALL_X = OS_USER_X | OS_GROUP_X | OS_OTH_X OS_ALL_RW = OS_ALL_R | OS_ALL_W OS_ALL_RWX = OS_ALL_RW | OS_GROUP_X )
これらの定数を使用すると、アクセス許可を次のことができます。明示的に指定できます:
dir_file_mode := os.ModeDir | (OS_USER_RWX | OS_ALL_R) os.MkdirAll(dir_str, dir_file_mode)
このメソッドにより、ファイルのアクセス許可を正確に制御できるようになり、許可ビットを手動で設定する必要があります。
以上がUID、GID、および 8 進数のアクセス許可を使用して Go で os.FileMode をインスタンス化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。