打印

sigaction在C++中怎么调用?

sigaction在C++中怎么调用?

[code:1]
void tcp_read_thread::test(int s)
{
}
tcp_read_thread::tcp_read_thread()
{
    act.sa_handler = test
}
[/code:1]

在c下面可以很好编译通过的程序,在C++中就编不过了。
报:  错误:实参类型为 ‘void (tcp_read_thread:(int)’,与 ‘void (*)(int)’ 不匹配

TOP

static
   

TOP

谢谢,编译通过了,能解释下吗?

TOP

这个只能是全局函数,不能是类的成员。
因此如果要写在类中只能用 static
   

TOP

谢谢WeiMingzhi
今天又发现了问题,原来编译是通过了,函数却没有执行!!!
在头文件中将test()声明为static。
我是在tcp_read_thread的初始化函数中装载handler,
实际上是一个tcp server程序。test()接受僵死的子进程,而fork()是在另外一个成员函数中调用的。
从c转到c++不久,不知道以上做法是否正确

TOP