工作范围离linux系统比较远,这方面弱弱的,赶紧恶补下。。
从不同地方摘的,有点散。
信号是传送给进程的一种事件通知,生成信号的事件有三大类:
1. 程序错误:除零,非法内存访问 …
2. 外部信号:终端 Ctrl-C 产生 SGINT 信号,定时器到期产生 SIGALRM…
3. 显示请求: kill 函数允许进程发送任何信号给其他进程或进程组。
信号生成既可以是同步的(信号与程序中的某个具体操作相关并在那个操作同时产生),也可以是异步的。通常程序错误生成信号为同步的,进程显式请求给自己的信号也是同步的。
外部事件总是异步的,来自其他进程的显示请求也是异步的。
信号发生时,我们可以告诉 unix 内核采取下面三种动作