SetHandleInformation () Linux эквивалент - PullRequest
0 голосов
/ 30 ноября 2009

для класса сервера TCP Мне нужна функция Linux, которая делает то, что SetHandleInformation (, HANDLE_FLAG_INHERIT, 0) делает под Windows. Я уже искал в Интернете после эквивалента Linux, но я не нашел ничего полезного. Единственная причина, по которой мне нужна эта функция, - сделать дескриптор сокета наследуемым для дочерних процессов. Таким образом, если Linux SetHandleInformation () отсутствует, есть ли другой способ сделать это под Linux?

1 Ответ

1 голос
/ 30 ноября 2009

Файловые дескрипторы в Linux наследуются дочерними процессами по умолчанию. Чтобы изменить это, вы используете функцию fcntl(). Следующий вызов установит флаг «close-on-exec» для сокета, что эквивалентно тому, что он не будет наследоваться.

fcntl(socket, F_SETFD, FD_CLOEXEC);

Для обратного (сделать сокет наследуемым, по умолчанию) просто:

fcntl(socket, F_SETFD, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...