标题:
第20章20-2例子的问题
[打印本页]
作者:
ch4534
时间:
2011-6-18 22:20
标题:
第20章20-2例子的问题
#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); ”作用是什么?谢谢了!!!
作者:
fwbook
时间:
2011-6-20 13:06
SignalHandlerPointer previousHandler; 定义一个变量previousHandler,类型是 SignalHandlerPointer。
previousHandler = signal(SIGABRT, SignalHandler); 就是赋值。
从语法角度来说明,估计容易理解一点。
作者:
badegg88722
时间:
2011-10-29 20:22
2#
fwbook
同问,对这段代码语法理解没问题,但是定义的 previousHandler 变量好像没什么用啊?
欢迎光临 万卷图书 (http://wanjuanchina.net/)
Powered by Discuz! 7.0.0