我需要编写一个函数,在按CTRL + \后恢复CTRL + C(终止进程)的默认行为 这是我的计划:
#include <stdlib.h>
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void sig_int(int sig)
{
printf("U PRESSED CTRL+C\n");
}
void sig_quit(int sig){
printf("CTRL+C NOW DO ITS KILLING JOB\n");
}
int main(int argc, char** argv)
{
signal(SIGINT,sig_int);
signal(SIGQUIT, sig_quit);
return 0;
}
感谢您提供所有帮助和说明以便更好地理解:)
答案 0 :(得分:1)
取自我机器上的手册页:
要设置上面列出的信号的默认操作,func应该是SIG_DFL。
所以signal(SIQUIT, SIG_DFL)
如果我正确理解了您的问题。
答案 1 :(得分:1)
signal
返回先前配置的处理程序,将其存储在某处,然后使用signal
随时恢复它。 SIG_DFL也指向C运行时的默认处理程序,但这并不总是正确使用。