C 如何删除信号处理程序
我已经做了跟踪信号处理程序C 如何删除信号处理程序,c,posix,signal-handling,C,Posix,Signal Handling,我已经做了跟踪信号处理程序 struct sigaction pipeIn; pipeIn.sa_handler = updateServer; sigemptyset(&pipeIn.sa_mask); sa.sa_flags = SA_RESTART; if(sigaction(SIGUSR1, &pipeIn, NULL) == -1){ printf("We have a problem, sigaction is not working.\n");
struct sigaction pipeIn;
pipeIn.sa_handler = updateServer;
sigemptyset(&pipeIn.sa_mask);
sa.sa_flags = SA_RESTART;
if(sigaction(SIGUSR1, &pipeIn, NULL) == -1){
printf("We have a problem, sigaction is not working.\n");
perror("\n");
exit(1);
}
如何删除或阻止此特定处理程序,以便设置另一个使用相同信号的信号处理程序?谢谢。调用时使用
SIG_DFL
代替函数指针。或者用新的信号处理程序替换现有的信号处理程序;不需要先删除旧的。如果您只想删除信号处理程序(我发现了一个示例,其中我得到了循环信号),那么signal(SIGUSR1,SIG_DFL)
是等效的,没有struct-sigaction的尴尬。