SIGQUIT:停止
SIGILL:illegal instruction
SIGABRT:Abort
SIGFPE:Float point exception
SIGPIPE:Broken pipe
SIGBUS:总线错误(访问mem)
SIGSEGV:段错误
一般情况下,程序应对上述信号进行处理,一方面探测程序bug,另一方面防止一些异常信号促使程序不能正常运行。
信号处理
- linux对每种信号都规定了默认动作,具体可参考man 7 signal
- SIGCHLD 忽略
- 实时信号结束进程。
- 如果不想程序采用默认动作处理进程,需要捕捉函数(为想要特殊处理的函数指定信号处理函数)。
- 如发生SIGALARM或SIGPIPE,进行超时处理即可,不必终止进程。此外若想发生信号时做特殊处理也应指定信号处理函数,如发生段错误时,提示用户等。