Linux:信号(信号的概述、信号相关函数、阻塞信号集和未决信号集、信号的捕获和处理)

1、信号的概述

(1)What(什么是信号)

信号是一种消息处理机制,其本质是一个整数

(2)Why(信号的作用)

可用于实现进程通信、进程同步、进程控制(进程创建、进程退出、进程回收)、异常处理和事件通知(通过注册信号处理函数,实现事件驱动型编程)

(3)Which(有哪些信号)

kill - l:可以查看所有的标准信号
man signalNum signal:查看signalNum的信号详情

(4)信号默认处理动作

  • Term:进程终止
  • Core:进程终止,并生成用于gdb调试用的core文件
  • Stop:暂停进程运行
  • Cont:让暂停的进程继续运行
  • Ign:默认忽略该信号

(5)信号的状态

  • 产生:键盘输入、函数调用、shell命令都可以产生信号
  • 未决:信号产生了,但是还没有被处理
  • 递达:信号被处理了

2、信号相关函数

(1)kill函数

用于向指定的进程或进程租发送sig信号

int kill(pid_t pid, int sig) 

pid 指定接收信号的进程 ID。如果 pid 大于 0,信号被发送到指定的进程;如果 pid 等于 0,信号被发送到与发送进程属于同一进程组的所有进程;如果 pid 等于 -1,信号被发送到系统中除了进程 0 和自身进程以外的所有进程;如果 pid 小于 -1,信号被发送到 pid 的绝对值所指定的进程组中的所有进程。

(2) raise函数

用于向自身进程发送信号sig信号

 int raise(int sig);

成功时返回 0,失败时返回非 0 值。

(3) abort函数

用于使当前进程异常终止

void abort(void);

它会向进程发送 SIGABRT 信号,默认情况下会导致进程产生核心转储(core dump)并终止

(4) alarm函数

用于设置一个定时器,在指定的时间间隔后向当前进程发送 SIGALRM 信号

unsigned int alarm(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值