c - 我如何删除信号处理程序

标签 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");
    perror("\n");
    exit(1);    

}

如何删除或阻止这个特定的处理程序,以便我可以设置另一个使用相同信号的信号处理程序?谢谢。

最佳答案

在调用 sigaction(2) 时使用 SIG_DFL 代替函数指针.

关于c - 我如何删除信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9302464/

相关文章:

c - 持有互斥量时 POSIX 线程退出/崩溃/异常崩溃

Bash 在循环中设置一个全局变量并保留它的值——或者进程替换为假人

CTRL+C 没有杀死我的程序

c - 为什么 scanf 不能正确读取值?

c - 在c中使用free()出现段错误

c - 用于文件传输的多个套接字连接

c++ - Linux x64 堆栈在信号处理程序中展开,以修改返回地址

windows - 如何在 Windows 上通过 mpiexec 传递信号?

c++ - 解释以下程序的操作

filesystems - POSIX 存储和 NFS 有什么区别?