深入理解信号处理:从基础到高级应用
1. 信号集操作函数
在信号处理中,信号集操作是基础且重要的部分。有两个初始化信号集的函数,它们返回值为 0,在进一步使用信号集之前,需要调用其中一个函数对信号集进行初始化。
-sigaddset() 和 sigdelset()
-sigaddset()用于将指定信号signo添加到信号集set中。
-sigdelset()用于从信号集set中移除指定信号signo。
- 这两个函数成功时返回 0,出错时返回 -1,此时errno被设置为EINVAL,表示signo是无效的信号标识符。
-sigismember()
- 该函数用于判断指定信号signo是否在信号集set中。如果存在返回 1,不存在返回 0,出错返回 -1,errno同样被设置为EINVAL。
除了上述 POSIX 标准函数外,Linux 还提供了一些非标准的信号集操作函数:
#define _GNU_SOURCE #include <signal.h