ファイルの作成/更新のための os.FileMode のインスタンス化
os.FileMode を正しくインスタンス化すると、作成または更新中にファイルのアクセス許可が適切に設定されます。多くのチュートリアルでは、アクセス許可ビットを直接設定することに頼っていますが、より正確なアプローチには、os.FileMode タイプの利用が含まれます。
アクセス許可設定のカスタム定数
事前定義されていない場合OS または syscall の定数を宣言することができます。 own:
const ( OS_READ = 04 OS_WRITE = 02 OS_EX = 01 ... OS_ALL_RWX = OS_ALL_RW | OS_ALL_X )
高精度権限設定の例
カスタム定数の使用例を示します:
func FileWrite(path string, r io.Reader, uid, gid int, perms string) (int64, error) { fileMode := os.FileMode(0) if perms[0] == '6' { fileMode |= OS_USER_RW } else if perms[0] == '7' { fileMode |= OS_USER_RWX } ... // Continue setting file mode based on the remaining characters of `perms` ... w, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, fileMode) ... }
カスタム定数アプローチの利点
カスタム定数提供:
以上が`os.FileMode` を使用して Go でファイルのアクセス許可を正確に設定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。