当我收到stopContinue()
时,我应该安装一个信号处理程序来调用函数SIGINT
。这是我在C中的代码片段,但我不确定这是否正确。请让我知道我哪里出错了。
struct sigaction act;
memset(&act, '\0', sizeof(act));
action.sa_flags = 0;
action.sa_handler = stopContinue;
sigaction(SIGINT, &act, NULL);
这看起来大致正确吗?
讨论使用sigaction与action,以及这里使用的标志与另一个问题不同,这不是一个骗局。
答案 0 :(得分:0)
如果您甚至不使用结构sigaction
成员,为什么要使用sa_flags
?要在按下 Ctrl + C 时拨打stopContinue
,您可以使用:
signal(SIGINT, stopContinue);
如果你只是想忽略 Ctrl + C ,你可以更容易:
signal(SIGINT, SIG_IGN);
SIG_IGN
是忽略信号的macro。