#include <pthread.h> #include <stdio.h> #include <unistd.h> #include <signal.h> void sig_handler(int signum); int main() { signal(SIGINT,sig_handler); pause(); } void sig_handler(int signum) { if(0 > signum) { fprintf(stderr,"sig_handler param err. [%d] ",signum); return; } if(SIGINT == signum) { printf("Received signal [%s] ",SIGINT==signum?"SIGINT":"Other"); } if(SIGQUIT == signum) { printf("Received signal [%s] ",SIGQUIT==signum?"SIGQUIT":"Other"); } return; }
信号处理可以用来模拟操作系统的中断功能,如上代码,当按Ctrl+C 时,就会输出信息