Linux环境编程 day04 中断、信号、计时器

中断

1、中断的概念
暂停当前执行的任务,转而执行其它任务,待完成后再返回继续执行当前任务。
硬件中断:来自硬件设备的中断
软件中断:来自其它程序的中断

2、信号是一种软件中断,信号提供一种异步执行任务的机制。

3、常见的信号
SIGSEGV(11) 段错误信号 试图访问未映射过虚拟内存,或向没有写权限的内存写入数据 终止+core
SIGINT(2) 终端中断符信号 用户按中断键(Ctrl+C),产生此信号,并送至前台进程组的所有进程 终止 
SIGFPE(8) 算术异常信号 表示一个算术运算异常,例如除以0、浮点溢出等 终止+core 
信号的默认处理方式:终止、终止+core、忽略

4、不可靠信号
是一种早期的信号机制,小于(34)SIGRTMIN都是不可靠信号。
这些不支持排队,可能会丢失,同一个信号产生多次,但进程只收到一次。

5、可靠信号
位于(34)SIGRTMIN和(64)SIGRTMAX之间的信号都是可靠信号,支持排除不会丢失,安全可靠。

信号

信号的捕获处理

1、先在内核中注册一个信号处理函数。
2、当信号发生时内核会捕获信号并调用信号处理函数。

#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
功能:向内核注册一个信号处理函数
signum:要捕获的信号
handler:
    1、信号处理函数的地址
    2、SIG_IGN(忽略) SIG_DFL(按默认方式处理)
返回值:成功返
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值