信号处理函数sigaction()

sigaction()函数用于设置信号处理方式,可以携带信息。它接收信号值、处理函数和旧处理函数参数。sa_sigaction指定的处理函数带三个参数,包括信号值、siginfo_t结构指针(含信号数据)和未使用参数。信号处理函数可以像中断一样被调用,接收信号值并在处理函数中操作。对比signal()函数,sigaction()能传递更多信息。实时和非实时信号在排队和可靠性上有所区别。信号集则用于描述信号集合,常与信号阻塞配合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sigaction():信号处理函数 可以携带信息~

头文件 #include <signal.h>

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

一个参数为信号的值,可以为除SIGKILLSIGSTOP外的任何一个特定有效的信号(为这两个信号定义自己的处理函数,将导致信号安装错误)。

第二个参数是指向结构sigaction的一个实例的指针,在结构sigaction的实例中,指定了对特定信号的处理可以为空,进程会以缺省方式对信号处理

第三个参数oldact指向的对象用来保存原来对相应信号的处理,可指定oldactNULL

如果把第二、第三个参数都设为NULL,那么该函数可用于检查信号的有效性。

struct sigaction
{
    union
    {
        __sighandler_t _sa_handler;
        void (*_sa_sigaction)(int, struct siginfo *, void *);
    } _u
    sigset_t sa_mask;
    unsigned long sa_flags;
    void (*sa_restorer)(void);
}
 

1联合数据结构中union的两个元素_sa_handler以及*_sa_sigaction指定信号关联函

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值