信号发送与处理-上
问题
按下 Ctrl + C 后,命令行中的前台进程会被终止。为什么???
什么是信号?
信号是一种 "软件中断",用来处理异步事件
- 内核发送信号到某个进程,通知进程事件的发送
- 事件可能来自硬件,可能来自用户输入,可能来自除零错误
信号是一种类型的进程间通信方式 (一个进程向另一个进程发送信号)
- A 进程发生事件 T,向 B 进程发送信号,B 进程执行动作响应事件
- 进程可以对接收到的不同信号进行不同响应动作 (信号 => 处理)
信号的分类
硬件异常
- 内核检测到硬件错误,发送相应信号给相关进程
终端信号
- 在终端输入 "特殊字符" 等价于向前台进程组发送相应信号
软件信号
- 在软件层面 (进程代码中) 触发的信号 (发送给自身或其他进程)
硬件异常信号

终端相关信号
SIGINT ( Ctrl + C )
- 程序终止信号,用于通知前台进程组终止进程
SIGQUIT ( Ctrl + \ )
- 与 SIGINT 类似,进程收到该信号退出时可产生 coredump 文件
SIGTSTP ( Ctrl + Z )
- 停止进程的运行,进程收到该信号后可以选择处理或忽略
软件相关信号
子进程退出:父进程收到 SIGCHLD 信号
父进程退出:子进程可能收到信号 (什么信号?)
定时器到期:alarm(),ualarm(),timer_create(),...
主动发信号:kill(),raise(),...
内核与信号

信号的默认处理

知识加油站:System V vs BSD
System V
- 也被称为 AT&T System V,是 Unix 操作系统众多版本中的一支
BSD
- 加州大学伯克利分校开创,Unix 衍生系统,代表由此派生出的各种套件集合


自定义信号处理
#include <sys/types.h>
#include <signal.h>
typedef void(*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
sighandler_t sysv_signal(int signum, sighandler_t handler);
sighandler_t bsd_signal(int signum, sighandler_t handler);

信号处理示例

自定义信号发送
#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig); // pid > 0, pid == 0, pid < -1
int raise(int sig); // 信号处理完毕才返回


信号发送示例

思考
三种自定义信号处理函数有什么区别???
相关文章:
信号发送与处理-上
问题 按下 Ctrl C 后,命令行中的前台进程会被终止。为什么??? 什么是信号? 信号是一种 "软件中断",用来处理异步事件 内核发送信号到某个进程,通知进程事件的发送事件可能来自硬件…...
[蓝桥杯 2022 省 A] 推导部分和
[蓝桥杯 2022 省 A] 推导部分和 题目描述 对于一个长度为 N N N 的整数数列 A 1 , A 2 , ⋯ A N A_{1}, A_{2}, \cdots A_{N} A1,A2,⋯AN,小蓝想知道下标 l l l 到 r r r 的部分和 ∑ i l r A i A l A l 1 ⋯ A r \sum\limits_{il}^{r}A_iA_{l}A…...
pytorch复现_UNet
什么是UNet U-Net由收缩路径和扩张路径组成。收缩路径是一系列卷积层和汇集层,其中要素地图的分辨率逐渐降低。扩展路径是一系列上采样层和卷积层,其中特征地图的分辨率逐渐增加。 在扩展路径中的每一步,来自收缩路径的对应特征地图与当前特征…...
定岗定编设计:企业职能部门定岗定编设计项目成功案例
一、客户背景及现状分析 某大型车辆公司隶属于某央企集团,建于20世纪60年代,是中国高速、重载、专用铁路车辆生产经营的优势企业,轨道车辆制动机研发制造的主导企业,是隶属于国内最大的轨道交通设备制造上市企业的骨干二级公司。公…...
鸿蒙原生应用开发-DevEco Studio本地模拟器的使用
使用Local Emulator运行应用/服务 DevEco Studio提供的Local Emulator可以运行和调试Phone、TV和Wearable设备的HarmonyOS应用/服务。在Local Emulator上运行应用/服务兼容签名与不签名两种类型的HAP。 Local Emulator相比于Remote Emulator的区别:Local Emulator是…...
QT blockingFilter blockingMap blockingMapped
blockingFilter 主要作用是筛选出符合条件的项值结果集,并与之替换原有序列列表 blockingMap 可以直接修改容器的每一项 blockingMapped 不直接修改容器的每一项,而是将处理后的结果返回一个新的容器 blockingMappedReduced ResultType QtConcurrent::blockingMappedRed…...
【ARFoundation学习笔记】平面检测
写在前面的话 本系列笔记旨在记录作者在学习Unity中的AR开发过程中需要记录的问题和知识点。难免出现纰漏,更多详细内容请阅读原文。 文章目录 平面检测属性可视化平面平面检测的开关控制显示与隐藏已检测平面 平面检测属性 AR中检测平面的原理:AR Fou…...
Python---ljust()--左对齐、rjust()--右对齐、center()--居中对齐
作用:返回原字符串左对齐、右对齐以及居中对齐,不足的使用 指定字符 进行填充。 ljust 左对齐 rjust 右对齐 center 居中对齐 类似于Excel、Word文档中的对齐。 基本语法: 字符串序列.ljust(长度, 填充字符) 案例: …...
spdk用户态块层详解
先通过回顾内核态的通用块层来详细介绍SPDK通用块层,包括通用块层的架构、核心数据结构、数据流方面的考量等。最后描述基于通用块层之上的两个特性:一是逻辑卷的支持,基于通用块设备的Blobstore和各种逻辑卷的特性,精简配置&…...
双通道 H 桥电机驱动芯片AT8833,软硬件兼容替代DRV8833,应用玩具、打印机等应用
上期小编给大家分享了单通道 H 桥电机驱动芯片,现在来讲一讲双通道的驱动芯片。 双通道 H 桥电机驱动芯片能通过控制电机的正反转、速度和停止等功能,实现对电机的精确控制。下面介绍双通道H桥电机驱动芯片的工作原理和特点。 一、工作原理 双通道 H 桥电…...
WPF布局与控件分类
Refer:WPF从假入门到真的入门 - 知乎 (zhihu.com) Refer:WPF从假入门到真的入门 - 知乎 (zhihu.com) https://www.zhihu.com/column/c_1397867519101755392 https://blog.csdn.net/qq_44034384/article/details/106154954 https://www.cnblogs.com/mq0…...
复杂逻辑的开发利器—Mendix快速实现AQL质量抽检
Mendix低代码开发平台适用于复杂的业务逻辑场景,这句话大家早有耳闻,本期小编就为您打开智慧之光,仅从AQL小侧面,来管窥一二——Mendix如何形成第五代编程语言,来完成数据逻辑与建模、业务算法逻辑与建模的。ÿ…...
RFID系统
目录 在物联网应用中有三项关键技术 读写器 电子标签 工作原理 阅读器的组成及作用: 电子标签的组成及作用: RFID系统的组成 接口方式 在物联网应用中有三项关键技术 在物联网应用中有三项关键技术 1、传感器技术:这也是计算机应用中…...
Markov Chain Fingerprinting to Classify Encrypted Traffic 论文笔记
0.Abstract 在本文中,提出了用于SSL/TLS会话中传输的应用程序流量的随机指纹。这个指纹基于一阶齐次马尔可夫链,模型识别应用程序的准确率,并提供了检测异常对话的可能性。 1.Introduction 通过SSL/TLS会话时的头部信息创建统计指纹ÿ…...
vue 跨标签页的数据共享(即跨标签页通信)
跨标签页通信的常见方案 LocalStorage 或 SessionStorage BroadCast Channel Service Worker Shared Worker Window.postMessage() Cookies IndexedDB 什么是跨标签页通信? 指在同一个浏览器窗口中的多个标签页之间进行数据交流和信息传递的过程。通常情况…...
什么是拉宾-斯科特定理?
拉宾-斯科特定理(Rabin-Scott theorem )是数学上最深刻的数学结果之一。拉宾-斯科特定理是人们最喜欢的计算机科学概念之一。 当正确理解拉宾-斯科特定理时,它会以一种相当基本的方式改变你对现实的看法。然而,它典型的教科书式的呈现方式掩盖了这种深…...
Java并发编程第11讲——AQS设计思想及核心源码分析
Java并发包(JUC)中提供了很多并发工具,比如前面介绍过的ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore、FutureTask等锁或者同步部件,它们的实现都用到了一个共同的基类——AbstractQueuedSynchronizer&…...
什么是数据库?数据库有哪些基本分类和主要特点?
数据库是以某种有组织的方式存储的数据集合。本文从数据库的基本概念出发,详细解读了数据库的主要类别和基本特点,并就大模型时代备受瞩目的数据库类型——向量数据库进行了深度剖析,供大家在了解数据库领域的基本概念时起到一点参考作用。 …...
flutter显示出底部控件的引导页
需求:同一个页面的两个不同的入口,同一个控件的位置有变化,显示引导页时对应这个控件的引导内容的位置也需要改变;同时半透明底部显示出真实的页面内容。 这样的需要如果切图然后再往页面上贴位置无法精确的对准。 思路࿱…...
常用设计模式——模板方法模式
什么是模板方法模式 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却要在每一个子类都重写这些方法…...
三步掌握创意编程:p5.js Web Editor零门槛入门指南
三步掌握创意编程:p5.js Web Editor零门槛入门指南 【免费下载链接】p5.js-web-editor The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and …...
Kintsugi AI心理健康筛查技术开源:审批困境与新应用契机
【导语:加利福尼亚初创公司 Kintsugi 开发从语音检测抑郁和焦虑迹象的 AI,因未获 FDA 批准即将关闭并开源技术。其技术有新应用可能,但也面临监管、滥用等问题。】AI语音筛查:心理健康评估新尝试过去七年,Kintsugi 致力…...
智慧树自动化学习助手:技术实现与最佳实践指南
智慧树自动化学习助手:技术实现与最佳实践指南 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树在线学习平台作为国内主流的教育资源平台,…...
Agent 不是玄学!前端只需要会做步骤可视化就够了
“AI 智能体”“思考链”“工具调用”—— 这些词听着就像 “AI 要统治世界”,是不是觉得离前端特别远?其实不然!对前端来说,Agent 就是 “一个会自己做任务的 AI”—— 比如 “让 AI 自动查天气、写周报、发邮件”,你…...
未来金融的三大走向
1. 智能化加速AI已从辅助决策走向自主交易,量化策略、智能投顾将覆盖更多普通投资者。不懂代码,也能用自然语言下达投资指令。 2. 资产代币化现实世界资产(RWA)上链成为新趋势。房产、债券、甚至艺术品,都可以分割成数…...
如何快速实现免费离线OCR:Umi-OCR完整使用指南
如何快速实现免费离线OCR:Umi-OCR完整使用指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...
Qwen3-14B API服务压测报告:QPS 23+,P99延迟<1.2s高并发表现
Qwen3-14B API服务压测报告:QPS 23,P99延迟<1.2s高并发表现 1. 测试环境与配置 1.1 硬件配置 本次压测采用专门优化的Qwen3-14B私有部署镜像,运行在以下硬件环境: GPU:RTX 4090D 24GB显存(与镜像完美…...
Elsevier Tracker终极指南:3分钟搞定学术论文审稿状态追踪
Elsevier Tracker终极指南:3分钟搞定学术论文审稿状态追踪 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 还在为Elsevier期刊审稿进度而焦虑吗?每天刷新页面、等待邮件通知的日子终于可以结…...
obs-multi-rtmp技术突破:多平台直播资源效率提升的5大实践方法
obs-multi-rtmp技术突破:多平台直播资源效率提升的5大实践方法 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp obs-multi-rtmp作为一款开源的OBS Studio插件,通过…...
5步打造清爽右键菜单:ContextMenuManager开源工具完全指南
5步打造清爽右键菜单:ContextMenuManager开源工具完全指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 当你在Windows系统中右键点击文件时&#…...
