信号处理:
基本概念:
1、中断
当进程接收到信息后中止当前正在执行的过程,转而去执行其他任务,等其他任务完成后再返回,这种执行模式叫做中断模式
2、信号
是一种软件中断,由操作系统发出,进程接收后会执行相应的操作
3、常见的信号
kill -l 显示所有的信号
SIGINT(2) Ctrl+c 终止
SIGQUIT(3) Ctrl+\ 终止+core
SIGFPE(8) 除以0 终止+core
SIGKILL(9) 终止信号 终止
SIGSEGV(11) 非法访问内存 终止+core
4、不可靠信号和可靠信号
建立在早期的信号处理机制上的信号(1~31),是不可靠信号,不支持排队,可能会丢失,同一个信号如果连续产生多次,进程可能只处理了一次
建立在新的信号处理机制上的信号(32~64),是可靠信号,支持排队且不会丢失
5、信号的来源
硬件异常: 除零、无效的内存访问、未定义的指令、总线错误
软件异常: 一般通过命令、函数产生的信号
6、信号的处理方式
1、忽略
2、终止进程
3、终止并产生core文件
4、捕获并处理信号
(在信号来之前,向内核注册一个函数,当信号来后,系统会自动执行注册函数)