Выполнение открытия при использовании O_CREAT - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь понять некоторые основы ОС, и я застрял между флагами и разрешениями.

Если используется open(), используется следующий способ int fd = open(path, O_CREAT | O_RDWR, 0000);, при котором наш файл будет иметь значение 0000разрешения и в каких условиях наш файл будет иметь условия 0666?

Сначала я подумал, что если файл уже создан, мы будем использовать его с разрешениями 0000, а если он не будет создан, будут созданы и использованы с 0666разрешения.Я не совсем уверен, прав ли я.

1 Ответ

2 голосов
/ 02 июля 2019
  • Если эта команда открытия создает новый файл, то здесь применим только режим = 0000.
  • Если файл уже существует, значение значения mode не имеет значения.

Здесь вы используете режим = 0000.Если файл не существует, он назначит разрешения «0000», что означает, что никто (пользователь, группа, другие) не имеет разрешения на чтение | запись | выполнение.Пожалуйста, используйте правильное значение режима.

...