Linux 信号signal

本文详细介绍了Linux信号(signal)的基本概念,包括信号的分类、常见处理方式以及如何产生信号。通过终端按键、系统函数等方式产生的信号在不同场景下有不同的作用,如进程的控制和调试。此外,文章还探讨了信号的阻塞状态和在内核中的表示,阐述了信号在进程控制中的重要作用。

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

1. 信号的基本概念

    联系现实生活中的信号,我们可以理解为:Linux中的signal其实就是一种标志,操作系统知道这个标志代表着什么含义,以及知道遇见这个标志它应该采取怎样的动作。(如红灯信号,你知道红灯信号代表着不能通过马路,而你采取的动作就是等待)

1.1 信号的分类:

使用kill -l : 可以查看系统定义的信号列表。


总共有62种信号。1-31号信号称为普通信号,34-64号信号称为实时信号。

每个信号都有一个编号和一个宏定义的名称,这些宏定义可以在/usr/include/signal.h中找到。

以1号信号为例,它的宏定义为:#define SIGHUP 1

1.2 信号的常见处理方式
  • 忽略信号
  • 执行默认的信号处理动作
  • 捕捉信号。提供一个信号处理函数,要求内核在处理信号时切换至用户态执行这个处理函数
2. 产生信号

信号通过以下三种方式产生,下面分别进行介绍:

2.1 通过终端按键产生信号

用户在终端按下某些键的时候,终端驱动程序会发送信号给前台进程。比如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值