用sigcation函数(在头文件signal.h中)来设置自己的信号处理函数,用法参见http://baike.baidu.com/view/1748537.htm
各种信号参见:http://baike.baidu.com/view/64630.htm
* 另外,据说信号处理程序调用任何标准库函数时,程序的行为是未定义的。
各种信号参见:http://baike.baidu.com/view/64630.htm
写了个SIGINT,也就是C-c键的处理例子:
#include<stdio.h>
#include<signal.h>
struct sigaction newSigINT, oldSigINT;
void signalINTHandler( int setSignal){
printf("\nSIGINT captured before I quit.\n");
/*set the default function back*/
sigaction(SIGINT, &oldSigINT, NULL);
/*termination*/
kill(0, SIGINT);
}
int main() {
/*set the member of newSigINT*/
newSigINT.sa_handler = &signalINTHandler;
/*set new SIGINT signal handler*/
sigaction(SIGINT, &newSigINT,&oldSigINT);
/*run forever*/
while(1){ sleep(1);}
return 0;
}
* 另外,据说信号处理程序调用任何标准库函数时,程序的行为是未定义的。