sigaction 使用

sigaction 使用函数sigaction原型:intsigaction(intsigno,conststructsigaction*restrictact,structsigaction*restrictoact);@signo信号编号@act要注册的信号动作@oact原信号动作参数structsigactionstructsigaction{

大家好,又见面了,我是你们的朋友全栈君。

函数sigaction

原型:int sigaction(int signo,const struct sigaction *restrict act, struct sigaction *restrict oact);
    @signo 信号编号
    @act   要注册的信号动作
    @oact  原信号动作

参数 struct sigaction

struct sigaction{
void (*sa_handler)(int);
sigset_t sa_mask;
int sa_flag;
void (sa_sigaction)(int,siginfo_t ,void *);
};

sa_haddler or sa_sigaction

sa_handler & sa_sigaction 信号处理函数的指针,二者用其一:如果sa_flags中存在SA_SIGINFO标志,那么sa_sigaction将作为signum信号的处理函数。否则用sa_handler。

sa_mask

sa_mask 指定一个系统在处理该信号时要屏蔽(阻塞)的信号集合,即在调用该信号捕捉函数之前,这一信号集要加进进程的信号屏蔽字中。仅当从信号捕捉函数返回时再将进程的信号屏蔽字复位为原先值。另外,除了SA_NODEFER标志被指定外,触发信号处理函数执行的那个信号也会被阻塞。

sa_flag

sa_flag 指定一系列用于修改信号处理过程行为的标志,由下面的0个或多个标志通过or运算组合而成:
SA_SIGINFO   指定信号处理函数需要三个参数,所以应使用sa_sigaction替代sa_handler。
SA_NODEFER   在信号处理函数处置信号的时段中,核心程序不会把这个间隙中产生的信号阻塞。
SA_INTERRUPT  由此信号中断的系统调用不会自动重启
SA_RESTART   核心会自动重启信号中断的系统调用,否则返回EINTR错误值。(重启被中断的系统调用)
SA_RESETHAND 信号处理函数接收到信号后,会先将对信号处理的方式设为预设方式,而且当函数处理该信号时,后来发生的信号将不会被阻塞。
SA_ONSTACK   如果利用sigaltstack()建立信号专用堆栈,则此标志会把所有信号送往该堆栈。
SA_NOCLDSTOP 假如signum的值是SIGCHLD,则在子进程停止或恢复执行时不会传信号给调用本系统调用的进程。
SA_NOCLDWAIT 当调用此系统调用的进程之子进程终止时,系统不会建立zombie进程。

使用实例

redis 信号处理
redis 信号处理

参考

ref 1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141131.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 测试15

    测试15无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。HTTP的接口测试工具有很多,

    2022年7月3日
    23
  • 为什么我charles抓包带了给锁_使用Charles抓包

    为什么我charles抓包带了给锁_使用Charles抓包使用Charles抓包Charles抓包Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器。它允许一个开发者查看所有连接互联网的HTTP通信。这些包括request、response现HTTPheaders(包含cookies与caching信息)。1、配置抓包环境1)下载Charles2)安装Charles下载完毕之后,直接进行安装即可正常使用(ps:不注册的话,每次使用3…

    2022年5月24日
    150
  • 异步传输模式atm采用_ATM网是什么

    异步传输模式atm采用_ATM网是什么       异步传输模式(ATM)在ATM参考模式下构成一个协议集,用来建立一个在固定53比特流的数据包(信元)上运送所有通信流量的机制。固定大小的包可以确保迅速且容易地实现交换和多路技术功能。ATM是一种面向连接的技术,也就是说,两个网络系统要建立相互间的通信,应该通知所有的中间交换有关它们的服务需求和流量参数。  ATM参考模式分为三层:ATM适配层AAL、ATM层和物

    2022年9月2日
    4
  • 从简单的信道预计说起

    从简单的信道预计说起

    2021年11月15日
    40
  • 【转AekdyCoin】求小于等于N的与N互质的数的和「建议收藏」

    【转AekdyCoin】求小于等于N的与N互质的数的和「建议收藏」话说我以前求这样的问题都是先求与N不互质的数,把N分解质因数,然后用容斥原理,今天看了大牛的博客,顿时觉得弱爆了。。。以下内容转大牛文章:ifgcd(n,i)=1thengcd(n,n-i)=1(1反证法:如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0而n%k=0那么必须保证i%k=0k是n的因子,如果i%k=0那么gcd(n,i)=k

    2022年7月23日
    13
  • ASP.NET之UpdatePanel控件

    ASP.NET之UpdatePanel控件

    2022年3月11日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号