Книга: Разработка приложений в среде Linux. Второе издание
11.5.1. Изменение режима доступа к открытому файлу
11.5.1. Изменение режима доступа к открытому файлу
Режим добавления (указываемый флагом O_APPEND
при открытии файла) и неблокирующий режим (флаг O_NONBLOCK
), могут быть включены и отключены уже после того, как файл был открыт, с помощью команды F_SETFL
в fcntl()
. Параметр arg
при этом должен содержать флаги, которые нужно установить — если какой-то из флагов не указан для fd
, он отключается.
F_GETFL
можно использовать для запроса текущих установленных флагов файла. Это возвращает все флаги, включая режим чтения/записи для открытого файла. F_SETFL
позволяет только устанавливать упомянутые выше флаги — любые другие флаги, представленные в аргументе arg
, игнорируются.
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_RDONLY);
Такой вызов абсолютно правильный, но он не делает ничего. Включение режима добавления для открытого файлового дескриптора выглядит так, как показано ниже.
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_APPEND);
Следует отметить, что это предохраняет установку O_NONBLOCK
. Отключение режима добавления выглядит похоже.
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_APPEND);
- 9.4. Права доступа к squid
- 2.6. Термостабилизация режима каскада на биполярном транзисторе
- 10.5. Транзакции и пути доступа меню
- Настройка доступа пользователей к рабочей книге
- 3.5 Проблемы доступа при использовании нескольких протоколов
- Добавление, изменение и удаление элементов списка
- Добавление, изменение и удаление столбцов списка
- Добавление и изменение представления списка
- Есть ли быстрый способ доступа к папкам?
- Часть II Изменение способов ведения бизнеса
- После переустановки Windows нет доступа к папке Мои документы или нельзя удалить оставшуюся от старой системы папку Docu...
- Как не запутаться в разрешениях доступа к файлам?