首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暂停子进程并从父进程恢复该进程。

暂停子进程并从父进程恢复该进程。
EN

Stack Overflow用户
提问于 2022-01-06 23:09:17
回答 1查看 368关注 0票数 0

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

EN

回答 1

Stack Overflow用户

发布于 2022-01-06 23:57:30

子进程永不中断,父进程正在等待子进程完成。我是否需要放置一个空函数来检查信号,在暂停()之前写人;?

根据它的文档,pause()

会导致调用进程(或线程)处于休眠状态,直到信号被传递,或者终止进程,或者调用信号捕获函数。

(强调后加)

所以是的,如果您希望从pause()中恢复子进程,那么您必须确保接收父信号会导致信号捕获函数(即.a)。要调用的“信号处理程序”。这需要在signal()或(更好的) sigaction()函数之前通过pause()注册该信号的处理程序。信号处理程序的签名将是void some_name(int),所以这可能就是您所想到的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70614713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档