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

时间:2011-11-07 14:23:14

标签: linux linux-kernel system-calls

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

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

2 个答案:

答案 0 :(得分:0)

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

https://github.com/mhaberler/libancillary

答案 1 :(得分:0)

https://www.normalesup.org/~george/comp/libancillary/处有一个库可以为您执行此操作,许多项目通过复制到树中来使用它,但是主要的git主机不再存在。