1 /*
2 信号集设定
3 头文件 #include<signal.h>
4 原型:
5 sigset_t set; //typedef unsigned long sigset_t; 定义信号集合
6 int sigemptyset(sigset_t *set); 将某个信号集合清0 成功返回0,失败返回-1
7 int sigfillset(sigset_t *set); 将某个信号集合清1 成功返回0,失败返回-1
8 int sigaddset(sigset_t *set,int signum);将某个信号加入集合 成功返回0,失败返回-1
9 int sigdelset(sigset_t *set,int signum);将某个信号移出集合 成功返回0,失败返回-1
10
11 int sigismember(sigset_t *set,int signum); 判断某个信号是否在信号集中
12 返回值:在集合中,返回1 不再集合中返回0 出错返回-1
13
14 sigset_t类型的本质是位图。但不应该直接使用位操作,而应使用上述函数,保证跨系统操作有效
15 */
16
17 /*
18 sigprocmask()头文件 #include<signal.h>
19 原型:
20 int sigprocmask(int how,const sigset_t *set,sigset_t *oldset);
21 返回值:成功返回0;失败返回-1,设置errno
22 how: 1.SIG_BLOCK: set表示需要屏蔽的信号
23 2.SIG_UNBLOCK: set表示需要解除屏蔽的信号
24 3.SIG_SETMASK: set表示用屏蔽信号由set覆盖
25 set: 传入参数,是个位图
26 oldset: 传出参数,保存旧的信号屏蔽集
27 作用:读取或修改进程的信号屏蔽字(PCB中),设置set到相应的阻塞信号集中,以达到屏蔽或解除屏蔽信号
28 注意:屏蔽信号只是将信号延后处理(直至解除屏蔽),并不是忽略信号(丢弃信号)
29 */
30
31 /*
32 sigpending()头文件 #include<signal.h>
33 原型:
34 int sigpending(sigset_t *set);
35 返回值:成功返回0;失败返回-1,设置errno
35 获取未决信号集
36 */
linux系统编程 信号集操作函数
于 2022-03-22 17:18:40 首次发布