当用户按下ctrl c时,根据我的要求,我应该在10秒后处理它。
为此我在实际工作的信号处理函数内添加了sleep(10)。 我不确定它是如何工作的。它是实现它的正确方法。如果在信号处理程序中调用它,将会休息。我真的很想知道它是如何工作的。实现这个的正确方法是什么
signal_hanlder(int sig num)
{
sleep(10);
my_handler();
}
答案 0 :(得分:1)
如果您希望线程继续运行,请使用alarm()
在10秒后安排唤醒。
signal(SIGALRM, my_handler);
void signal_handler(int sig_num) {
alarm(10);
}