Linux 信号系统是进程间通信的一种机制,用于在进程之间传递简单的通知信息。信号可以被发送给进程以通知其发生的特定事件,例如键盘中断、用户输入、异常等。本文将详细介绍 Linux 信号系统的工作原理,并提供相关的源代码示例。
1. 信号概述
在 Linux 中,每个信号都有一个唯一的整数标识符,称为信号编号。信号编号的范围是 1 到 64,其中一些信号具有固定的预定义含义,例如 SIGKILL (9) 表示强制终止进程,SIGSTOP (19) 表示停止进程等。
进程可以通过调用 kill(pid, signum)
函数向另一个进程发送信号,其中 pid
是要接收信号的进程的进程 ID,signum
是要发送的信号编号。
2. 信号处理
Linux 提供了三种处理信号的方式:
-
默认处理:大多数信号在收到时都会有一个默认的操作,例如终止进程或忽略信号。可以使用
signal(signum, SIG_DFL)
函数将信号的处理方式设置为默认操作。 -
忽略信号:可以使用
signal(signum, SIG_IGN)
函数将信号的处理方式设置为忽略,即当进程收到该信号时,不采取任何操作。<