当前位置: 首页 > news >正文

Linux中信号的发送及信号的自定义捕捉方法

预备知识:

信号产生时进程早已知道该信号如何处理。

信号产生时进程可能并不能立即处理信号而是等到合适的时候处理。

信号其他相关常见概念

实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。

进程可以选择阻塞 (Block )某个信号。

被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作.

注意,阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作。

 block为0则查看pending

block为1则继续往下

处理信号的三种方式:

默认:由操作系统决定如何处理

忽略:处理信号但不进行任何操作,将比特位由1清为0,返回系统调用继续向后运行。

自定义:

block信号又称为信号屏蔽字。

handler_t handler[32]数组是有下标的。

a.数组的位置(下标),信号的编号

b.数组下标对应的内容,表示对应信号的处理方法。

结论:

如果一个信号没有产生,并不妨碍它可以先被阻塞。

用户态权限较低,内核态权限较高。

cpu中:

内核级页表只有一份,通过内核级页表可访问操作系统的代码和数据。

信号的自定义捕捉方法:

 

http://www.lryc.cn/news/414722.html

相关文章:

  • yum仓库的制作与使用
  • 牛客周赛54:D.清楚姐姐跳格子(bfs)
  • 用户空间 lmkd
  • 二叉树专题
  • Spring MVC 之简介及常见注解
  • 除了使用本地存储,还有哪些方法可以实现只出现一次的弹窗?
  • 微软蓝屏事件揭示的网络安全深层问题与未来应对策略
  • C#:通用方法总结—第11集
  • Web开发-html篇-下
  • 【C++从小白到大牛】多态那些事儿(上)
  • 网站在线查询工具箱源码分享
  • SSH简写且免密登陆终端设备
  • 算力共享中神经网络切片和算力分配策略
  • 3章4节:R的逻辑运算和矩阵运算
  • 使用EasyAR打包安卓操作注意
  • 驾驭PyCharm:破解环境配置的迷宫
  • 大数据技术原理-Hadoop的安装
  • 从根儿上学习spring 八 之run方法启动第四段(2)
  • 牛顿插值法代替泰勒公式
  • 为 Laravel 提供生产模式下的容器化环境:打造现代开发环境的终极指南
  • Visual Studio 和 VSCode 哪个好?
  • 百款精选的HTML5小游戏源码,你可以下载并直接运行在你的小程序或者自己的网站上
  • 01 LVS负载均衡群集
  • Redis结合Lua脚本的简单使用
  • Java使用zip4j加密压缩和解压文件与文件夹
  • 一款好用的开源网站内容管理系统
  • Qt Modbus 寄存器读写实例
  • centos安装es、kibana、ik
  • 调试工具之GDB的基本使用
  • C++ //练习 16.14 编写Screen类模板,用非类型参数定义Screen的高和宽。