与使用sendmsg()
系统调用通过UNIX域套接字发送它(types设置为SCM_RIGHTS
的消息sendmsg()
相比,Linux是否提供了更好的方式将fd从一个进程发送到另一个进程? 我想最好的办法是以某种方式能够命名一个fd,然后在一个不相关的过程中打开它(通过名字),但是我可以接受其他的select。
我问这个问题的原因是能够在没有父子关系的进程之间使用* fd()函数(例如, eventfd()
, timerfd()
, signalfd()
等)分享文件描述符要困难得多。
这个基于libancillary的例子展示了如何在不相关的prosees之间传递eventfd。 请参阅evclient.c和evserver.c代码。