Существует ли более простой способ обмена файловыми дескрипторами между несвязанными процессами в современном Linux (т. Е. Ver> = 3.0.0)? - PullRequest
5 голосов
/ 07 ноября 2011

Предоставляет ли Linux лучший способ отправки fd из одного процесса в другой для совместного использования, чем использование системного вызова sendmsg() для его отправки (сообщение с типом, установленным на SCM_RIGHTS) через сокет домена UNIX?Я полагаю, что наилучшей возможностью было бы каким-либо образом назвать имя fd, а затем открыть его (по имени) в несвязанном процессе, но я открыт для других альтернатив.

Причина, по которой я задаю этот вопрос, заключается вчтобы иметь возможность использовать функции * fd () (например, eventfd(), timerfd(), signalfd() и т. д.) между процессами, не имеющими родительских и дочерних отношений, что значительно затрудняет совместное использование файловых дескрипторов.

1 Ответ

0 голосов
/ 30 января 2014

Этот пример, основанный на библиотеках, показывает, как передавать eventfd между несвязанными объектами. См. Код evclient.c и evserver.c.

https://github.com/mhaberler/libancillary

...