linux信号使用注意事项

本文深入解析Linux信号处理机制,强调避免在信号处理函数中执行复杂操作及使用互斥锁,探讨信号屏蔽、信号丢失问题,并提供查看进程信号状态的方法。

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

1.不要在信号处理函数中处理复杂的事情
2.信号处理函数中不能有互斥锁会造成死锁,可以用信号量替代
3.信号是置位方式实现,多次发送相同的信号可能只会收到一次
4.子进程具有继承父类信号屏蔽,不能在信号处理函数中启动自身
查看进程pcb(process control block)
/proc/<pid>/status 文件更直观地查看到指定进程的信息屏蔽情况
cat /proc/21517/status

SIGUSR1=16=0x8000
SIGUSR2=17=0x10000

0x18000
SigBlk: 00000000000000000000000080018000


SigQ:   0/459
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000080000000
SigIgn: 00000000000000000000000000001000
SigCgt: 00000000000000000000000380018000
CapInh: 0000000000000000


SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000080018000
SigIgn: 00000000000000000000000000001000
SigCgt: 00000000000000000000000380018000
SigPnd | The bitmap of pending signals
SigBlk | The bitmap of blocked signals
SigIgn | The bitmap of ignored signals
SigCgt | The bitmap of catched signals  
 
 
Linux 信号以及开发中常见信号错误
https://blog.youkuaiyun.com/u010674648/article/details/78848909?utm_medium=distribute.wap_relevant.none-task-blog-title-4
Linux信号丢失问题分析
https://blog.youkuaiyun.com/gaoxuelin/article/details/9701147?utm_source=blogxgwz3
Linux信号透彻分析与理解
https://blog.youkuaiyun.com/dyzhen/article/details/85322111
信号的原理和利用--实现sleep函数
https://blog.youkuaiyun.com/stay_the_course/article/details/72902501

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值