嵌入式系统工程师
信号
信号
2
大纲
大纲
概述
信号的基本操作
33
大纲
大纲
概述
信号的基本操作
44
信号 (signal)概述
信号 (signal)概述
信号是软件中断,它是在软件层次上对中断机制的一
种模拟。
信号可以导致一个正在运行的进程被另一个正在运
行的异步进程中断,转而处理某一个突发事件。
信号是一种异步通信方式。
进程不必等待信号的到达,进程也不知道信号什么
时候到达。
信号可以直接进行用户空间进程和内核空间进程的交
互,内核进程可以利用它来通知用户空间进程发生了
哪些系统事件。
55
信号 (signal)概述
信号 (signal)概述
每个信号的名字都以字符SIG开头。
每个信号和一个数字编码相对应,在头文件signum.h
中,这些信号都被定义为正整数。
参考路径:
/usr/include/i386-linux-gnu/bits/signum.h
在Linux下,要想查看这些信号和编码的对应关系,可
使用命令:kill -l
66
信号 (signal)概述
信号 (signal)概述
77
信号 (signal)概述
信号 (signal)概述
以下条件可以产生一个信号
1、当用户按某些终端键时,将产生信号。
例如:
终端上按“Ctrl+c”组合键通常产生中断信号
SIGINT、终端上按"Ctrl+\"键通常产生中断信号
SIGQUIT、终端上按"Ctrl+z"键通常产生中断信号
SIGSTOP。
2、硬件异常将产生信号。
除数为0,无效的内存访问等。这些情况通常由
硬件检测到,并通知内核,然后内核产生适当的信
号发送给相应的进程。
88
信号 (signal)概述
信号 (signal)概述
3、软件异常将产生信号。
当检测到某种软件条件已发生,并将其通知有关进
程时,产生信号。
4、调用kill函数将发送信号。
注意:接收信号进程和发送信号进程的所有者必须
相同,或发送信号进程的所有者必须是超级用户。
5、运行kill命令将发送信号。
此程序实际上是使用kill函数来发送信号。也常用
此命令终止一个失控的后台进程。
99
信号 (signal)概述
信号 (signal)概述
一个进程收到一个信号的时候,可以用如下方法进行
处理:
忽略此信号
大多