Valentin Nechayev
2013-09-22 09:21:42 UTC
Читаю очередной ман и вижу:
===
MSG_CMSG_CLOEXEC (recvmsg() only; since Linux 2.6.23)
Set the close-on-exec flag for the file descriptor received via
a UNIX domain file descriptor using the SCM_RIGHTS operation
(described in unix(7)). This flag is useful for the same rea-
sons as the O_CLOEXEC flag of open(2).
===
Вам не кажется, что вместо придумывания кучи подобных флагов для
каждого интерфейса отдельно, было бы проще сделать вообще глобальный
флаг на уровне всего процесса - "все новосоздаваемые дескрипторы
автоматически получают FD_CLOEXEC"? А кто не хочет такого - пусть явно
снимает у совершенно конкретных дескрипторов.
Да, придётся подпилить все библиотеки, которые делают fork(), но таких
не так уж много, и за несколько лет этот процесс прошёл бы
беспроблемно.
--netch--
===
MSG_CMSG_CLOEXEC (recvmsg() only; since Linux 2.6.23)
Set the close-on-exec flag for the file descriptor received via
a UNIX domain file descriptor using the SCM_RIGHTS operation
(described in unix(7)). This flag is useful for the same rea-
sons as the O_CLOEXEC flag of open(2).
===
Вам не кажется, что вместо придумывания кучи подобных флагов для
каждого интерфейса отдельно, было бы проще сделать вообще глобальный
флаг на уровне всего процесса - "все новосоздаваемые дескрипторы
автоматически получают FD_CLOEXEC"? А кто не хочет такого - пусть явно
снимает у совершенно конкретных дескрипторов.
Да, придётся подпилить все библиотеки, которые делают fork(), но таких
не так уж много, и за несколько лет этот процесс прошёл бы
беспроблемно.
--netch--