Linux 信号处理

来源:互联网 发布:parsley.js使用 编辑:程序博客网 时间:2024/05/16 14:01
用sigcation函数(在头文件signal.h中)来设置自己的信号处理函数,用法参见http://baike.baidu.com/view/1748537.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;}

* 另外,据说信号处理程序调用任何标准库函数时,程序的行为是未定义的。

原创粉丝点击