QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1788|回复: 4

sigaction在C++中怎么调用?

[复制链接]
发表于 2006-8-29 15:35:02 | 显示全部楼层 |阅读模式
[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)’ 不匹配
WeiMingzhi 该用户已被删除
发表于 2006-8-29 15:54:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2006-8-30 09:16:58 | 显示全部楼层
谢谢,编译通过了,能解释下吗?
回复

使用道具 举报

WeiMingzhi 该用户已被删除
发表于 2006-8-30 19:44:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 08:27 , Processed in 0.037563 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表