使用os.O_CREATE时读取默认的FileMode

Let*_*t4U 5 umask go

我是Go的新手,在阅读默认文件权限/系统掩码时遇到一些问题.当然我可以指定固定权限:

f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0600)
Run Code Online (Sandbox Code Playgroud)

但是我希望程序能够很好地运行,并使用用户的帐户集打开一个文件umask.我怎样才能做到这一点?

Ask*_*sen 9

它已经像你想要的那样工作.

只需使用"0666"即可应用umask.

f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0666)
Run Code Online (Sandbox Code Playgroud)

对我来说,umask 0022我得到:

$ go run x.go  ; ls -l filename
-rw-r--r--  1 ask  wheel  0 May 24 00:18 filename
Run Code Online (Sandbox Code Playgroud)

如果您总是希望"other"无法读取该文件,请使用0660(例如),无论umask如何.