Linux c仅处理同步信号和消息队列

时间:2017-12-19 08:01:42

标签: c linux signals ipc

我正在寻找3个子进程及其父进程同步的帮助。 我有3个子进程,第一个是从文件行读取并通过管道发送到第二个,第二个进程接收它,计算它有多少个字符,并且该数字通过第二个进程发送到第三个进程,然后将其打印到控制台。

现在我必须使用信号和消息队列来处理SIGTERM,SIGCONT和SIGTSTP。场景如下所示: 只有第3个进程对从控制台发送的信号作出反应。 收到他'通知'父母。 父节点将信号保存到消息队列并“通知”第一个孩子。 第1个孩子读取,保存,通知第2个和第2个相同的第3个。

我已经用sigaction()siginfo_t等完成了所有这些,但我无法弄清楚的是如何使进程等待另一个。我读过wait(),waitid(),waitpid(),但所有这些似乎只用于子进程。

我需要能够停止进程的工具,直到ID指定的另一个进程执行某些操作。

1 个答案:

答案 0 :(得分:1)

我希望我理解这个问题,但我想你需要这样的事情:Can a child process wait for the parent process to terminate in Linux programming in C?