信号以SIG开头,SIGABRT是夭折信号,当进程调用abort函数时产生这种信号.SIGALRM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号.SIGINT:用户DELETE或Ctrl+C
#include <signal.h> #include <iostream> #include <unistd.h> using namespace std; static void testSig(int sigNo) { if(sigNo==SIGUSR1){ cout << "recv SIGUSR1" << endl; }else if(sigNo==SIGUSR2){ cout << "recv SIGUSR2" << endl; }else{ cout << "recv unknown sig:" << sigNo << endl; } } int main() { if(signal(SIGUSR1,testSig)==SIG_ERR){ cout << "can't catch SIGUSR1" << endl; } if(signal(SIGUSR2,testSig)==SIG_ERR){ cout << "can't catch SIGUSR2" << endl; } for(;;){ pause(); } } [root@bogon apue_debug]# ./apue & [1] 6893 [root@bogon apue_debug]# kill -USR1 6893 recv SIGUSR1 [root@bogon apue_debug]# kill -USR2 6893 recv SIGUSR2 [root@bogon apue_debug]# kill 6893 [1]+ 已终止 ./apue