为什么在调用OpenFile时需要设置权限?

时间:2018-12-13 12:26:02

标签: go

我了解权限对文件系统中存储的文件和目录的含义。 但是,为什么在调用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)

1 个答案:

答案 0 :(得分:4)

documented(添加了重点):

  

OpenFile是广义的open调用;大多数用户将改为使用“打开”或“创建”。它将打开具有指定标志(O_RDONLY等)和 perm(在umask之前)(如果适用)的命名文件。如果成功,则可以将返回的File上的方法用于I / O。如果有错误,它将是* PathError类型。

因此,perm值仅在创建文件时使用-打开现有文件时不适用,因此将被忽略。