signal function
#include <signal.h>
void (*signal(int signo, void (*func)(int)))(int);
/* Returns: previous disposition of signal (see following) if OK, SIG_ERR on error */
signo 是 signal name 或 signal number
func 是當 signal 發生時要呼叫的 function(signal handler)
func 也可以使用 SIG_IGN (忽略 signal) 或 SIG_DFL (預設行為處理)
因為不同系統對 signal 的實作不同,建議使用 sigaction
代替
signal setup
當程式啟動後,signal 一般是預設行為或是忽略
當 process 呼叫 fork 時,child 會繼承 parent 對 signal 的處理方式(signal dispositions)
當 process 呼叫 exec 時,exec 會將所有 signal 都設回 default action
shell 會自動將 background process 的 SIGINT 和 SIGQUIT signal 設為 ignore