信号处理程序返回哪里?

时间:2016-05-06 02:20:51

标签: c linux

假设在接收和处理信号时主进程内正在运行进程。信号处理程序完成后,进程是否返回到收到信号的主线路,还是返回到信号呼叫?

P.S。我知道我可以自己快速测试一下,但是当我无法访问我的电脑时,我想到了这个想法。

感谢。

2 个答案:

答案 0 :(得分:5)

当信号被触发时,它返回到代码中的位置。

许多库和应用程序利用相同的机制来实现无线多任务处理(例如libmill)。

答案 1 :(得分:3)

信号处理程序完成后,您的代码将在收到信号时继续执行。如果您的代码正在执行系统调用,则可能会因EINTR而失败。有关详细信息,请参阅signal(7)。