Linux是否提供了一种更好的方法将fd从一个进程发送到另一个进程进行共享,而不是使用sendmsg()
系统调用通过UNIX发送它(类型设置为SCM_RIGHTS
的消息)域套接字?我想最好的可能性是以某种方式能够命名一个fd,然后在一个不相关的过程中打开它(按名称),但我愿意接受其他选择。
我问这个问题的原因是能够在进程之间使用* fd()函数(例如eventfd()
,timerfd()
,signalfd()
等...)没有父子关系,使共享文件描述符变得更加困难。
答案 0 :(得分:0)
这个例子 - 基于libancillary - 显示了如何在不相关的prcoesses之间传递eventfd。请参阅evclient.c和evserver.c代码。
答案 1 :(得分:0)
https://www.normalesup.org/~george/comp/libancillary/处有一个库可以为您执行此操作,许多项目通过复制到树中来使用它,但是主要的git主机不再存在。