高级信号管理:深入解析与实践
1. 信号集函数基础
在信号处理中,有几个基础的信号集函数非常重要。sigaddset()和sigdelset()用于对信号集进行操作。sigaddset()可以将指定的信号signo添加到给定的信号集set中,而sigdelset()则是将signo从信号集set中移除。这两个函数在成功时返回 0,失败时返回 -1,此时errno会被设置为EINVAL,表示signo是无效的信号标识符。
#include <signal.h> // sigaddset 和 sigdelset 使用示例 sigset_t set; sigemptyset(&set); int signo = SIGINT; if (sigaddset(&set, signo) == -1) { perror("sigaddset"); } if (sigdelset(&set, signo) == -1) { perror("sigdelset"); }sigismember()用于检查指定信号signo是否在给定的信号集