C++使用sigaction实战

一 点睛

sigaction:查询或设置信号处理方式

头文件 

#include<signal.h>

定义函数 

int sigaction(int signum,const struct sigaction *act ,struct sigaction *oldact);

函数说明 

sigaction()会依参数signum指定的信号编号来设置该信号的处理函数。参数signum可以指定SIGKILL和SIGSTOP以外的所有信号。

结构sigaction定义如下

struct sigaction
{
    void (*sa_handler) (int);
    sigset_t sa_mask;
    int sa_flags;
    void (*sa_restorer) (void);
}

sa_handler:是一个函数指针,指向一个信号处理函数。

sa_mask:用来指定信号处理函数执行期间需要被屏蔽的信号,特别是当某个信号被处理时,它自身会自动放入进程的信号掩码,因此在信号处理函数执行期间,这个信号不会再度发生。

sa_restorer:此参数没有使用。

sa_flags:用来设置信号处理的其他相关操作,下列的数值可用。OR 运算(|)组合。

SA_NOCLDSTOP : 使父进程在它的子进程暂停或继续运行时不会收到SIGCHLD信号。

SA_RESTART:被信号中断的系统调用会自行重启

SA_NODEFER:在运行信号的处理函数时再次收到当前的信号,也会触发新处理函数调用。

返回值 

执行成功则返回0,如果有错误则返回-1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值