Книга: Разработка приложений в среде Linux. Второе издание
11.5.2. Модификация флага "закрыть при выполнении"
11.5.2. Модификация флага "закрыть при выполнении"
Во время системного вызова exec()
дескрипторы файлов обычно остаются открытыми для использования в новых программах. В некоторых случаях может потребоваться, чтобы файлы закрывались, когда вызывается exec()
. Вместо закрытия их вручную вы можете попросить систему закрыть соответствующий файловый дескриптор при вызове exec()
с помощью команд F_GETFD
и F_SETFD
в fcntl()
. Если флаг "закрыть при выполнении" (close-on-exec) установлен, когда применяется F_GETFD
, возвращается ненулевое значение, в противном случае возвращается ноль. Флаг "закрыть при выполнении" устанавливается командой F_SETFD
; он отключается, если arg
равно 0, в противном случае он включается.
Ниже показано, как можно заставить fd
закрываться, когда процесс вызывает exec()
.
fcntl(fd, F_SETFD, 1);
- Восстановление "безнадежных" баз данных. InterBase Surgeon
- Основные "рычаги" управления производительностью
- Модификация системных таблиц
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- 6. Модификация базовых отношений
- При неудачном выполнении некоторых операций Windows динамик издает пронзительный звук. Можно ли заставить его замолчать?
- Как одним щелчком кнопки мыши закрыть несколько окон одновременно?
- Как закрыть сразу все открытые документы?
- 4.11.4. Правила "все кроме"
- 5.5. ПРИМЕР РАЗРАБОТКИ ОПИСАНИЯ ПРОЦЕССА "КИПЯЧЕНИЕ ВОДЫ В ЧАЙНИКЕ"
- Рис. 201. Выберите "Через высокоскоростное подключение, запрашивающее имя пользователя и пароль"
- Доступ к "внешним" переменным