有没有一种更简单的方法来共享文件描述符在不相关的进程之间在现代Linux(即,ver> = 3.0.0)?

与使用sendmsg()系统调用通过UNIX域套接字发送它(types设置为SCM_RIGHTS的消息sendmsg()相比,Linux是否提供了更好的方式将fd从一个进程发送到另一个进程? 我想最好的办法是以某种方式能够命名一个fd,然后在一个不相关的过程中打开它(通过名字),但是我可以接受其他的select。

我问这个问题的原因是能够在没有父子关系的进程之间使用* fd()函数(例如, eventfd()timerfd()signalfd()等)分享文件描述符要困难得多。

这个基于libancillary的例子展示了如何在不相关的prosees之间传递eventfd。 请参阅evclient.c和evserver.c代码。

https://github.com/mhaberler/libancillary