Linux编程中的信号Signal

发布时间 2023-09-23 00:15:35作者: 远桥

系统信号是Unix/Linux以及其他POSIX标准系统中进程非同步通知机制。用于操作系统告知应用程序某事件即将发生,应用程序通过订阅监听相应的信号,可以在某事发生前/时/后及时做出相应反应。当一个信号抵达时,程序正常非原子操作被打断,注册的预处理函数将会被调用。信号和系统中断处理很相似,区别是中断是操作系统被打断,处理相应的事件。信号是应用程序被打断,其中操作系统可以将中断转为信号发送给应用程序。

Ctrl+C = SIGINT信号;

Ctrl+Z = SIGTSTP信号;

Ctrl+\ = SIGQUIT信号;

kill命令 - SIGTERM和SIGKILL信号。SIGTERM是kill不带参数时发出的,用于友好退出,相当于通知其退出,但是可以被阻塞和忽略,所以有的进程不恩你个被结束。kill带参数发出SIGKILL

强制终结应用。

SIGFPE - 除数为零;

SIGTOP - 停止/挂起进程Ctrl+D;

SIGSEGV - 段错误。

Linux应用开发中,可以通过signal(signal,handler)来注册相应信号的处理函数。