写简单的控制台程序的时候如果需要在用户通过Ctrl-C结束程序前进行一些收尾工作,那么首先要获取中断信号,下面程序是一个示例
#include <signal.h> #include<stdio.h> #include <windows.h> void sigint_catch(int sig_no) { printf("will quit .../n"); if(SIGINT == sig_no){ printf("catch signal is SIGINT/n"); signal(SIGINT,SIG_DFL); raise(SIGINT); } } int main(void) { //signal( SIGABRT, sigint_catch ); signal( SIGINT, sigint_catch ); while (1) { printf("sleeping/n"); Sleep(1000); } return 0; }