我们需要有一个能表示多个信号——信号机(signal set)的数据类型。POSIX.1定义数据类型sigset_t以包含一个信号集,并且定义了下列5个处理信号集的函数。
#include <signal.h> int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signo); int sigdelset(sigset_t *set, int signo); 4个函数的返回值:若成功,返回0;若出错,返回-1 int sigismember(const sigset_t *set, int signo); 返回值:若真,返回1;若假,返回0 |
---|
函数sigemptyset初始化由set指向的信号集,清除其中的所有信号。函数sigfillset初始化由set指向的信号集,使其包括所有信号。所有应用程序在使用信号集之前,要对该信号集调用sigemptyset或sigfillset一次。
一旦已经初始化了一个信号集,以后就可以在该信号集增删特定的信号。函数sigaddset将一个信号添加到已有的信号集中,sigdelset则从信号集中删除一个信号。