linux之信号

什么是信号

信号机制是一种使用信号来进行进程之间传递消息的方法,信号的全称为软中断信号,简称软中断。
信号的本质是软件层次上对中断的一种模拟(软中断)。它是一种异步通信的处理机制,
事实上,进程并不知道信号何时到来。

Linux系统一共有64个信号
其中1-31信号供应用开发者使用
32-64,后来扩充的

1~31之间的信号叫做非实时信号, 不支持排队, 信号可能会丢失, 也叫做不可靠信号。
34~64之间的信号叫做实时信号, 支持排队, 信号不会丢失, 也叫做可靠信号

信号是由用户、系统或进程发送给目标进程的信息,以通知目标进程摸个状态的改变或系统异常。

信号处理的优先级是大于系统调用的。

信号的产生方式

1.硬件产生信号
2.内核产生信号
3.进程产生信号

signal

signal函数
作用:为当前进程注册一个信号处理的行为
注册了,可以一直使用

在这里插入图片描述

这个函数头文件是signal.h

第一个参数是int类型的信号
第二个参数是个函数指针(参数传函数)

在这里插入图片描述

signaction

在这里插入图片描述

signaction 是比signal 更高级的信号处理函数
它不仅仅可以接收信号作信号处理,还能在接收信号的同时接收一些信息

kill

在这里插入图片描述

简单信号发送函数,用kill -s的时候,可以发送信号

信号集

信号集:多个信号的集合

信号集为: sigset_t类型

在这里插入图片描述

有一系列函数,这里只是列举了部分

信号屏蔽

操作系统内核维护一个信号队列
如果产生了信号,那么就入队

注册了信号处理的话,从队列中取出信号,进行处理
如果屏蔽某个信号,那么就不会从队列中取出信号

直到接触屏蔽,在进行信号处理

信号屏蔽用sigprocmask函数来进行处理

在这里插入图片描述在这里插入图片描述在这里插入图片描述

当然这部分知识,我学的也有限,就先到这里
后面了解更多了,再来补充

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔了岁月.c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值