Ответ 1
Да, если вам не нужна программа, которую вы выполняете, чтобы получить доступ к этому файловому дескриптору. Вы также можете закрыть дескриптор файла вручную в дочернем процессе до вызова exec, но это больше подвержено ошибкам.
Мой процесс вилки несколько раз, и каждый раз, когда ребенок выполняет exec - означает, что я хочу, чтобы он запускал какую-то другую программу.
В основном процессе я открываю файловый дескриптор с помощью open()
syscall.
Правильно ли это сделать флагом O_CLOEXEC
, поэтому новая программа, которую я запускаю с exec()
, не будет иметь ресурс fd?
Да, если вам не нужна программа, которую вы выполняете, чтобы получить доступ к этому файловому дескриптору. Вы также можете закрыть дескриптор файла вручную в дочернем процессе до вызова exec, но это больше подвержено ошибкам.