假设在接收和处理信号时主进程内正在运行进程。信号处理程序完成后,进程是否返回到收到信号的主线路,还是返回到信号呼叫?
P.S。我知道我可以自己快速测试一下,但是当我无法访问我的电脑时,我想到了这个想法。
感谢。
答案 0 :(得分:5)
当信号被触发时,它返回到代码中的位置。
许多库和应用程序利用相同的机制来实现无线多任务处理(例如libmill)。
答案 1 :(得分:3)
信号处理程序完成后,您的代码将在收到信号时继续执行。如果您的代码正在执行系统调用,则可能会因EINTR而失败。有关详细信息,请参阅signal(7)。