信号的捕捉过程
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){

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

被折叠的 条评论
为什么被折叠?



