目录
一、sigpending函数
功能:
头文件:
函数原型:
函数参数:
返回值:
二、sigemptyset函数
功能:
原型:
参数:
返回值:
三、sigfillset函数
功能:
原型:
参数:
返回值:
四、 sigaddset函数
功能:
原型:
参数:
返回值:
五、sigdelset函数
功能:
原型:
参数:
返回值:
六、sigismember函数
功能:
原型:
参数:
返回值:
七、sigprocmask函数
功能:
函数原型:
参数原型:
返回值:
一、sigpending函数
功能:
sigpending
函数的主要作用是获取当前进程中被阻塞且处于待处理状态的信号集。也就是说,有些信号因为被进程阻塞而暂时无法被处理,这些信号就处于待处理状态,sigpending
函数可以把这些信号收集起来。
头文件:
#include <signal.h>
函数原型:
int sigpending(sigset_t *set);
函数参数:
set
:这是一个指向 sigset_t
类型的指针。函数会把当前处于待处理状态的信号集存储到这个指针所指向的 sigset_t
对象中。
返回值:
若函数执行成功,返回值为 0。
若函数执行失败,返回值为 -1,同时会设置 errno
来表明具体的错误原因。
二、sigemptyset函数
功能:
将信号集初始化为空,也就是让信号集中不包含任何信号。
原型:
#include <signal.h>
int sigemptyset(sigset_t *set);
参数:
set
是指向 sigset_t
类型信号集的指针。
返回值:
成功时返回 0,出错时返回 -1。
三、sigfillset函数
功能:
将信号集初始化为包含所有可能的信号。但排除32、33
原型:
#include <signal.h>
int sigfillset(sigset_t *set);
参数:
set
是指向 sigset_t
类型信号集的指针。
返回值:
成功时返回 0,出错时返回 -1。
四、 sigaddset函数
功能:
将指定的信号添加到信号集中。
原型:
#include <signal.h>
int sigaddset(sigset_t *set, int signum);
参数:
set
:指向 sigset_t
类型信号集的指针。
signum
:要添加到信号集中的信号编号。
返回值:
成功时返回 0,出错时返回 -1。
五、sigdelset函数
功能:
从信号集中移除指定的信号。
原型:
#include <signal.h>
int sigdelset(sigset_t *set, int signum);
参数:
set
:指向 sigset_t
类型信号集的指针。
signum
:要从信号集中移除的信号编号。
返回值:
成功时返回 0,出错时返回 -1。
六、sigismember函数
功能:
检查指定的信号是否在信号集中。
原型:
#include <signal.h>
int sigismember(const sigset_t *set, int signum);
参数:
set
:指向 sigset_t
类型信号集的指针。
signum
:要检查的信号编号。
返回值:
如果信号在信号集中,返回 1;如果信号不在信号集中,返回 0;出错时返回 -1。
七、sigprocmask函数
功能:
它能够对进程的信号屏蔽字进行操作。信号屏蔽字决定了哪些信号会被阻塞,也就是暂时不被进程处理。
函数原型:
#include <signal.h>
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
参数原型:
how:此参数规定了对信号屏蔽字的操作方式,其取值及含义如下:
SIG_BLOCK:把 set 所指向的信号集中的信号添加到当前的信号屏蔽字里,即阻塞这些信号。新的信号屏蔽字是当前信号屏蔽字和 set 的并集。
SIG_UNBLOCK:从当前的信号屏蔽字中移除 set 所指向的信号集中的信号,也就是解除对这些信号的阻塞。新的信号屏蔽字是当前信号屏蔽字和 set 的差集。
SIG_SETMASK:把当前的信号屏蔽字设置为 set 所指向的信号集。
set:指向 sigset_t 类型的信号集,该信号集包含了要操作的信号。若 how 为 SIG_BLOCK 或 SIG_UNBLOCK,则 set 表示要添加或移除的信号;若 how 为 SIG_SETMASK,则 set 表示新的信号屏蔽字。若 set 为 NULL,则不改变当前的信号屏蔽字,仅把当前的信号屏蔽字保存到 oldset 中。
oldset:指向 sigset_t 类型的信号集,用于保存调用 sigprocmask 之前的信号屏蔽字。若 oldset 不为 NULL,则在调用 sigprocmask 时会将之前的信号屏蔽字保存到 oldset 中;若 oldset 为 NULL,则不保存之前的信号屏蔽字。
返回值:
若函数执行成功,返回 0。
若函数执行失败,返回 -1,同时会设置 errno 来表明具体的错误原因。