小工具知识网

当前位置: 首页 > 行业知识 > 【Linux】信号

行业知识

【Linux】信号

2026-11-11 10:25:26 来源:互联网转载

樊梓慕:个人主页

 个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》《算法》

每一个不曾起舞的日子,都是对生命的辜负


目录

前言

1.认识信号

2.信号的产生

2.1kill命令

2.2键盘输入 

2.2.1核心转储 

2.3系统调用

2.3.1kill函数

2.3.2raise函数

2.3.3abort函数

2.4软件条件

2.4.1SIGPIPE信号 

2.4.2SIGALRM信号

2.5异常

2.5.1除零异常

2.5.2野指针异常

3.信号的保存

3.1信号常见概念

3.2在内核中的表示

3.3sigset_t 

3.4操作block的系统调用sigprocmask

3.5获取pending的系统调用sigpending

4.信号的处理

4.1信号是什么时候被处理的?

4.1.1内核态与用户态

4.2信号是如何被处理的?

4.3sigaction

5.可重入函数

6.volatile

7.SIGCHLD信号 


前言

信号在我们的生活中无处不在,比如红绿灯给你递达了一个红灯停绿灯行的信号,收到快递取件码给你抵达了一个快递到了的信号等等,那么在计算机中也有信号的概念,对只不过接收信号的个体从人变成了进程,本篇文章我们会以信号的产生、信号的保存以及信号的处理来介绍信号的概念。


欢迎大家收藏以便未来做题时可以快速找到思路,巧妙的方法可以事半功倍。 

=========================================================================

GITEE相关代码:樊飞 (fanfei_c) - Gitee.com

=========================================================================


1.认识信号

信号是Linux系统提供的让用户(进程)给其他进程发送异步信息的一种方式。

异步:一个任务的执行不会阻塞其他任务的执行,即一个任务无需等待另一个任务完成即可开始。

那么根据我们在现实生活中对于信号的概念,我们可以总结出一份关于信号的认识:

  1. 我们能识别一个信号并做出处理;
  2. 当信号到来时,如果我们在处理更重要的事而暂时不能处理该信号,我们需要将这个信号临时保存,等到合适的时候再进行处理;
  3. 信号的产生是随时的,我们无法准确处理,所以信号是异步发送的。

接下来我们首先来观察一下常见的信号吧:

编写以下程序并运行:

#include #include #include using namespace std;int main(){  while (true)  {    cout 

上一篇:PHP DJ源码探索,揭秘背后的秘密

下一篇:解决鼠标丢帧,操作流畅无卡顿!