Роббинс Арнольд
Шрифт:
Аргумент
Получает флаги дескриптора файла. Возвращаемое значение является значением всех установленных флагов дескриптора или -1 при ошибке.
Устанавливает флаги дескриптора файла в содержащееся в
В настоящий момент определен лишь один «флаг дескриптора файла»:
100
Стандарт POSIX умышленно не приписывает ей значение. Однако, чтобы старый код продолжал работать, единственным значением, которое могла бы разумно использовать любая реализация, является 1 — Примеч. автора.
Однако, определение POSIX допускает дальнейшее расширение, поэтому правильный способ написания такого кода больше соответствует этим строкам:
ЗАМЕЧАНИЕ. Флаг close-on-exec является собственностью дескриптора, а не лежащего в его основе файла. Поэтому новый дескриптор, возвращенный функциями
В языке awk операторы ввода/вывода используют обозначение перенаправления, сходное с обозначением для оболочки. Это включает односторонние каналы к и от подпроцесса:
У интерпретатора
Теперь на современных системах часть стартового кода библиотеки С времени исполнения (который запускается до вызова
Однажды один пользователь сообщил, что когда в программе было максимальное количество открытых файлов, ни один процесс, для которого она пыталась использовать для конвейера
Вы, возможно, можете догадаться, что произошло. Порожденная оболочка унаследовала дескрипторы открытых файлов, которые
9.4.3.2. Дублирование дескриптора файла
Когда аргумент
Вы можете имитировать поведение
Если вы помните, что дескрипторы файлов являются просто индексами внутренней таблицы, работа этой функции должна быть ясна. Третий аргумент просто предоставляет индекс, с которого ядро должно начать поиск неиспользуемого дескриптора файла.
Использовать ли в собственном коде
9.4.3.3. Работа с флагами статуса файла и режимами доступа
В разделе 4.6.3 «Возвращаясь к
Таблица 9.4. Флаги O_xx для
Категория | Функции | Флаги |
---|---|---|
Доступ к файлу | open , fcntl | O_RDONLY , O_RDWR , O_WRONLY |
Создание файла | open | O_CREAT , O_EXCL , O_NOCTTY , O_TRUNC |
Статус файла | open , fcntl | O_APPEND , O_DSYNC , O_NONBLOCK , O_RSYNC , O_SYNC |