我了解权限对文件系统中存储的文件和目录的含义。 但是,为什么在调用os.OpenFile 时需要设置权限? 如果成功打开,它会更新文件系统上的文件权限吗? 如果不是,打开具有0000或0777的文件有什么区别?
https://golang.org/src/os/file.go?s=8454:8520#L272
func OpenFile(name string, flag int, perm FileMode) (*File, error)
...
f, err := os.OpenFile("access.log", os.O_APPEND, 0644)
答案 0 :(得分:4)
为documented(添加了重点):
OpenFile是广义的open调用;大多数用户将改为使用“打开”或“创建”。它将打开具有指定标志(O_RDONLY等)和 perm(在umask之前)(如果适用)的命名文件。如果成功,则可以将返回的File上的方法用于I / O。如果有错误,它将是* PathError类型。
因此,perm
值仅在创建文件时使用-打开现有文件时不适用,因此将被忽略。