#include "stdafx.h"
#include <exception>
#include <signal.h>
#include <iostream.h>
void SignalHandler(int sig); //信号处理函数
int main(int argc, char* argv[])
{
typedef void (*SignalHandlerPointer)(int); //函数指针
SignalHandlerPointer previousHandler; //定义信号句柄
//为信号SIGABRT注册信号处理函数
previousHandler = signal(SIGABRT, SignalHandler); //注册信号句柄
raise(SIGABRT); //抛出
return 0;
}
//异常处理函数
void SignalHandler(int sig)
{
cout<<"in signalhandler,signal="<<sig<<endl;
}、
typedef void (*SignalHandlerPointer)(int); //函数指针
SignalHandlerPointer previousHandler; //定义信号句柄
//为信号SIGABRT注册信号处理函数
previousHandler = signal(SIGABRT, SignalHandler); //注册信号句柄
关于红色这部分的代码,我有点看不懂,能否请大能解释一下这段代码的作用(虽然有注释部分,但是还是有点不明白),简单的说,就是为什么要定义“SignalHandlerPointer previousHandler;”这句
,下句“ previousHandler = signal(SIGABRT, SignalHandler); ”作用是什么?谢谢了!!! |