Welcome

首页 / 软件开发 / C语言 / Linux下C编程:信号集及操作

Linux下C编程:信号集及操作2012-12-28 CSDN 张同浩在实际的应用中一个应用程序需要对多个信号进行处理,为了方便,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、另外,int sigismember(const sigset_t set,int signumber),用于检测signumber是否在set中,若属于返回1,不是返回0.

查看全套文章:http://www.bianceng.cn/Programming/C/201212/34807.htm