有没有办法只处理SIGINT 2次并使用SA_RESETHAND将其恢复为默认值?我们必须使用sigaction,并使我们的处理程序自行重新安装2次,然后安装标志到resethand。但是有一个问题:如何仅重新安装我的处理程序2次以及如何在这种情况下使用RESETHAND? n-1个?
void sig_int(int sig)
{
printf(" -> Ctrl-C\n");
struct sigaction act;
act.sa_handler = SIG_DFL;
if(sigaction(SIGINT, &act, NULL) < 0)
{
exit(-1);
}
}
int main()
{
struct sigaction act;
act.sa_handler = sig_int;
if(sigaction(SIGINT, &act, NULL) < 0)
{
exit(-1);
}
while(1)
{
sleep(1);
}
return 0;
}