寫簡單的控制檯程序的時候如果需要在用戶通過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;
}