Подтвердить что ты не робот

Когда следует использовать O_CLOEXEC при открытии файла в Linux?

Мой процесс вилки несколько раз, и каждый раз, когда ребенок выполняет exec - означает, что я хочу, чтобы он запускал какую-то другую программу.

В основном процессе я открываю файловый дескриптор с помощью open() syscall.

Правильно ли это сделать флагом O_CLOEXEC, поэтому новая программа, которую я запускаю с exec(), не будет иметь ресурс fd?

4b9b3361

Ответ 1

Да, если вам не нужна программа, которую вы выполняете, чтобы получить доступ к этому файловому дескриптору. Вы также можете закрыть дескриптор файла вручную в дочернем процессе до вызова exec, но это больше подвержено ошибкам.