Зачем мне устанавливать разрешения при вызове OpenFile? - PullRequest
0 голосов
/ 13 декабря 2018

Я понимаю, что означают разрешения для файлов и каталогов, хранящихся в файловой системе.Но зачем мне устанавливать права доступа при вызове 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 голосов
/ 13 декабря 2018

Как задокументировано (выделение добавлено):

OpenFile - обобщенный открытый вызов;большинство пользователей будут использовать Open или Create.Он открывает именованный файл с указанным флагом (O_RDONLY и т. Д.) И perm (до umask), если применимо .В случае успеха методы для возвращенного файла могут быть использованы для ввода-вывода.Если есть ошибка, она будет иметь тип * PathError.

Таким образом, значение perm используется только при создании файла - при открытии существующего файла это не применимо, поэтому игнорируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...