Шрифт:
Таблица 3.2
Цифра | Значение | Смысл |
---|---|---|
1 | 0 | Никакие права пользователя не отвергнуты |
4 | Право пользователя на чтение отвергается | |
2 | Право пользователя на запись отвергается | |
1 | Право пользователя на выполнение отвергается | |
2 | 0 | Никакие права группы не отвергнуты |
4 | Право группы на чтение отвергается | |
2 | Право группы на запись отвергается | |
1 | Право группы на выполнение отвергается | |
3 | 0 | Никакие права остальных не отвергнуты |
4 | Право остальных на чтение отвергается | |
2 | Право остальных на запись отвергается | |
1 | Право остальных на выполнение отвергается |
Например, для блокирования права "группы" на запись и выполнение и права "остальных" на запись переменная umask должна была бы быть следующей (табл. 3.3).
Таблица 3.3
Цифра | Значение |
---|---|
1 | 0 |
2 | 2 |
1 | |
3 | 2 |
Значения каждой цифры объединяются операциями
Когда вы создаете файл с помощью системного вызова open или creat, параметр mode сравнивается с текущим значением переменной
Системный вызов
В некоторых случаях проверка возвращаемого значения вызова
Системный вызов
Вызов
Например, следующий вызов
Выполните упражнения 3.1 и 3.2.
Теперь вы знаете достаточно о системных вызовах
В данной главе мы проделаем это несколькими способами для того, чтобы сравнить эффективность разных методов. Для краткости предположим, что входной файл существует, а выходной — нет, и что все операции чтения и записи завершаются успешно. Конечно, в реальных программах вам придется убедиться в том, что эти предположения верны!