信号

信号的定义

信号是软件中断,它是在软件层次上对中断机制的一种模拟。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理一个图法事件。

信号的特点

异步通讯方式

信号的使用场景

信号可以直接进行用户空间进程和内核空间进程的交互,内核进程利用它来通知用户进程发生了什么系统事件。

相关头文件

/usr/include/i386-linux-gnu/bits/signum.h

如何查看信号和编码的对应关系

命令:kill -l

每一个信号和一个数字编码对应。

在Linux定义的信号中,不能被忽略和捕获的信号是哪两个?这样设计的目的是什么?

SIGKILL、SIGSTOP不能被忽略,原因是它们向超级用户提供一种使进程终止的可靠方法。

信号产生的条件?

  1. 用户按某些终端键时,将产生信号(Ctrl+C、Ctrl+Z、Ctrl+\)
  2. 硬件异常将产生信号(除0错误、无效的内存访问)
  3. 软件异常将产生信号
  4. 调用kill函数将发送信号