我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。
有关Linux进程间使用信号通信的更多内容,可以参阅我的另一篇文章,Linux进程间通信 – 信号量函数 signal()、sigaction()
下面是信号函数集:
1、int sigemptyset(sigset_t *set);
该函数的作用是将信号集初始化为空。
2、int sigfillset(sigset_t *set);
该函数的作用是把信号集初始化包含所有已定义的信号。
3、int sigaddset(sigset_t *set, int signo);
该函数的作用是把信号signo添加到信号集set中,成功时返回0,失败时返回-1。
4、int sigdelset(sigset_t *set, int signo);
该函数的作用是把信号signo从信号集set中删除,成功时返回0,失败时返回-1.
5、int sigismember(sigset_t *set, int signo);
该函数的作用是判断给定的信号signo是否是信号集中的一个成员,如果是返回1,如果不是,返回0,如果给定的信号无效,返回-1;
6、int sigpromask(int how, const sigset_t *set, sigset_t *oset)