在实际的应用中一个应用程序需要对多个信号进行处理,为了方便,linux系统引进了信号集的概念。信号集用多个信号组成的数据类型sigset_t.可用以下的系统调用设置信号集中所包含的数据。1、常见信号及定义如图:2、sigset_t在linux2.6.39/include/asm-generic/signal.h中定义
- typedef struct {
-
- unsignedlong sig[_NSIG_WORDS];
-
- } sigset_t;
3、相应的系统调用函数:
- #include<signal.h>
-
- int sigemptyset(sigset_t *set);
-
- int sigfillset(sigset_t *set);
-
- int sigadd(sigset_t *set,int setnumber);
-
- int sigdelset(sigset_t *set,int setnumber);
set表示信号集指针,setnumber表示信号。sigemptyset用于将set指向的信号集设为空,即不包含任何信号。sigfillset用于将set指向的信号集设为满,即包含所有的信号。sigaddset用于向信号集中添加信号。sigdelset用于向信号集中删除信号。以上函数成功返回0,失败返回-1 4、另外,intsigsimember(const sigset_t set,int signumber),用于检测signumber是否在set中,若属于返回1,不是返回0.