linux 系统编程 -- 信号及信号处理(四)

概念

信号是一种软件中断,它提供了一种处理异步事件的方法,也是进程间唯一的异步通信方式。

信号的来源:
①硬件方式:按键会产生信号,比如ctrl+c组合键,产生一个SIGINT信号;硬件异常信号,比如除数为0,无效存储访问,由cpu通知内核,内核生成相应信号。

②软件方式: 用户在终端下调用kill命令向进程发送任意信号;进程调用kill或sigqueue函数发送信号;当某种条件已经具备时发送信号,如settimer定时器超时产生SIGALRM信号。

信号的种类:
使用kill -l 命令系统支持的全部信号。
在这里插入图片描述
①SIGHUP:用户退出shell,由该shell启动的所有进程将收到这个信号,默认动作为终止进程。

②SIGINT:用户按下ctrl+c组合键,用户终端向正在运行中的由该终端启动的进程发送此信号,默认动作为终止进程。

③SIGQUIT:用户按下ctrl+\组合键,用户终端向正在运行中的由该终端启动的进程发送此信号,默认动作为终止进程并产生core文件。

④SIGILL:cpu检测到某进程执行了非法指令,默认动作为终止进程并产生core文件。

⑤SIGTRAP:由断点指令或其他trap指令产生,默认动作为终止进程并产生core文件。

⑥SIGABRT:调用abort函数产生该信号,,默认动作为终止进程并产生core文件。

⑦SIGBUS:非法访问内存地址,包括内存地址对齐出错,默认动作为终止进程并产生core文件。

⑧SIGFPE:在发生致命的算术运算时产生,不仅包括浮点运算错误,还包括溢出及除数为0等错误,默认动作为终止进程并产生core文件。

⑨SIGKILL:无条件终止进程,本信号不能被忽略、处理和阻塞。默认动作为终止进程,它向系统管理员提供了一种可以杀死任何进程的方法。

⑩SIGUSR1:用户定义的信号,即程序员可以在程序中定义并使用该信号。默认动作为终止进程。<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值