如何在Unix中处理信号?

时间:2015-12-24 15:11:47

标签: linux unix operating-system posix alarm

我的问题是如何在Unix中处理信号。它们是通过制作新线程还是其他东西来处理的?当信号到来时,程序的执行流程是什么?

执行流程的意思是,假设我处于函数X的中间,并调用另一个函数Y。因此编译器会暂停函数X的执行并转到函数Y。完成函数Y后,编译器再次从暂停的位置继续执行程序X。同样地,我想知道程序在信号到来时如何执行。

我在程序中使用settimer来执行一个函数。但是当我降低interval value时,再次调用该函数并且先前的执行被取消,尽管我不确定。代码太乱了,所以我没有在这里发布。

感谢您查看..!

1 个答案:

答案 0 :(得分:2)

操作系统停止运行接收信号的线程并运行信号处理程序。当它返回时,原始线程重新启动它所在的位置。

如果信号处理程序在另一个信号进入时已经在运行,则可以在sigaction调用中配置该操作。