c-暂停子进程并从父进程恢复



除了理论之外,几乎不知道信号是如何工作的。我正在写一个程序,需要子进程启动、暂停、等待父进程发送信号,然后父进程运行其部分代码,发送信号,等待子进程完成,然后子进程继续并继续通过pause((;并结束,以便父级可以继续,以便它也可以结束。我已经尝试过kill(c_pid,SIGCONT(,但程序只是挂起,因为子进程从不解包,父进程正在等待子进程完成。我需要放一个空函数来检查信号,在pause((之前写某人吗?

子进程从不解包,父进程正在等待子进程完成。我需要放一个空函数来检查信号,在pause((之前写某人吗?

根据其文档,pause()

导致调用进程(或线程(休眠,直到传递了终止进程或调用信号捕获函数的信号为止。

(添加了强调。(

因此,是的,如果您希望子级从pause()恢复,那么您必须确保接收到父级的信号会导致调用信号捕获函数(也称为"信号处理程序"(。这需要在pause()ing之前通过signal()或(更好的(sigaction()函数为该信号注册这样一个处理程序。信号处理程序的签名应该是void some_name(int),所以这可能就是你所想的。

最新更新