如何在linux中的两个进程之间传递事件fd

时间:2016-05-06 20:43:17

标签: c++ c linux embedded-linux

我有两个流程,ProcessGUI和ProcessMaster。我的两个过程都会在某些条件下执行某些操作。假设一旦在Master进程中发生某些事情,GUI进程就必须显示一些东西。我想通过更改事件fd来表明。有没有办法,我可以在两个进程之间共享一个事件fd。

2 个答案:

答案 0 :(得分:0)

有很多方法可以达到你想要的效果。

突然出现的第一个问题是使用sendmsg通过套接字共享eventfd。 这种方法是可行的,但它需要两个进程来打开套接字。

另一种方法是使用信号。有2个信号可用作"用户信号&#34 ;; USR1& USR2,您可以设置一个进程来捕获用户信号,另一个进程发送它(kill,以便更准确)。

我能想到的最后一件事是使用套接字和(e)轮询它。说实话,它就像第一种方法一样,但没有通过套接字共享FD。

答案 1 :(得分:-1)

您可以使用Linux信号来传达这两个进程。这里有一些例子:Linux signals

你的一个进程使用raise()方法生成一个信号,另一个进程注册一个信号处理程序以使用signal()函数对事件做出反应。