一步一步学Linux C:信号集及操作
一步一步学Linux C:信号集及操作
在实际的应用中一个应用程序需要对多个信号进行处理,为了方便,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.
评论暂时关闭