我有两个流程,ProcessGUI和ProcessMaster。我的两个过程都会在某些条件下执行某些操作。假设一旦在Master进程中发生某些事情,GUI进程就必须显示一些东西。我想通过更改事件fd来表明。有没有办法,我可以在两个进程之间共享一个事件fd。
答案 0 :(得分:0)
有很多方法可以达到你想要的效果。
突然出现的第一个问题是使用sendmsg
通过套接字共享eventfd。
这种方法是可行的,但它需要两个进程来打开套接字。
另一种方法是使用信号。有2个信号可用作"用户信号&#34 ;; USR1& USR2,您可以设置一个进程来捕获用户信号,另一个进程发送它(kill
,以便更准确)。
我能想到的最后一件事是使用套接字和(e)轮询它。说实话,它就像第一种方法一样,但没有通过套接字共享FD。
答案 1 :(得分:-1)
您可以使用Linux信号来传达这两个进程。这里有一些例子:Linux signals。
你的一个进程使用raise()方法生成一个信号,另一个进程注册一个信号处理程序以使用signal()函数对事件做出反应。