- 论坛徽章:
- 0
|
发表于: 2006-7-27 22:52 [编辑] [引用] [投诉] [快速回复]
--------------------------------------------------------------------------------
如下面的代码,我需要给信号SIGPROF设置一个处理函数,该函数是这个类中的成员函数myhandler,应该怎么写?(这样写在编译时是会报错的,报这句act.sa_handler = &TimerTest::myhandler;无法进行类型转换cannot convert `void (TimerTest::*)(int)' to `void (*)(int)'),其他部分的问题,大家可以不必细究,我想要问的问题是:怎么把一个信号处理函数指定为着个类的成员函数。
大牛们请不吝赐教!
class TimerTest{
public:
TimerTest();
private:
void myhandler(int s){
char aster ='*';
write(STDERR_FILENO,&aster,1);
}
int setupinterrupt(){
struct sigaction act;
act.sa_handler = &TimerTest::myhandler;
act.sa_flags = 0;
return (sigemptyset(&act.sa_mask)||sigaction(SIGPROF,&act,NULL));
}
}; |
|