我的问题是如何在Unix中处理信号。它们是通过制作新线程还是其他东西来处理的?当信号到来时,程序的执行流程是什么?
执行流程的意思是,假设我处于函数X
的中间,并调用另一个函数Y
。因此编译器会暂停函数X
的执行并转到函数Y
。完成函数Y
后,编译器再次从暂停的位置继续执行程序X
。同样地,我想知道程序在信号到来时如何执行。
我在程序中使用settimer
来执行一个函数。但是当我降低interval value
时,再次调用该函数并且先前的执行被取消,尽管我不确定。代码太乱了,所以我没有在这里发布。
感谢您查看..!
答案 0 :(得分:2)
操作系统停止运行接收信号的线程并运行信号处理程序。当它返回时,原始线程重新启动它所在的位置。
如果信号处理程序在另一个信号进入时已经在运行,则可以在sigaction调用中配置该操作。