[Linux] 进程中的信号:信号的捕捉过程、volatile关键字(下)

本文详细探讨了Linux系统中进程如何捕捉信号,重点介绍了sigaction函数在信号处理中的应用,以及在多线程环境下,handler函数与main函数作为独立控制流时,volatile关键字的作用和重要性,确保变量状态的正确同步。

信号的捕捉过程

PS:进程地址空间中,包括1G的内核空间和3G的用户空间,其中所有的进程看到的内核空间都是一样的内容,都是OS的代码和数据。
信号的捕捉

sigaction 捕捉信号

  • int sigaction(int signo, const struct sigaction *act, struct sigaction *oact)----读取和修改与指定信号相关联的处理动作(作用与signal函数一样),调用成功则返回0,失败则返回- 1;
  • 若act指针非空,则根据act修改该信号的处理动作,若oact指针非空,则通过oact传出该信号原来的处理动作
  • sigaction是个结构体,里面包含的基本成员变量有:
    sa_hander:要执行的信号处理动作
    sa_mask:要额外屏蔽的信号
    sa_flags:包含一些选项信息,一般设置为0
void handler(int signo){
   
   
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值