免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5304 | 回复: 15
打印 上一主题 下一主题

[函数] 能给信号处理函数传入任意类型形参吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-24 13:10 |只看该作者 |倒序浏览
我要在信号处理函数中使用另一个函数内的参数(不是全局变量),又不能在这个函数内定义信号处理函数。那应该怎么办?

论坛徽章:
0
2 [报告]
发表于 2007-10-24 13:16 |只看该作者
局部变量你打算怎么让外部使用?共享区副本?全局副本?

论坛徽章:
0
3 [报告]
发表于 2007-10-24 13:19 |只看该作者
除了共享内存以外,想不到办法来实现这一怪异的需求:) 哪位有好的思路?

论坛徽章:
0
4 [报告]
发表于 2007-10-24 13:22 |只看该作者
嘿嘿,栈覆盖 ~~~

纯属YY

论坛徽章:
0
5 [报告]
发表于 2007-10-24 13:22 |只看该作者
一进入那个函数,就把那个局部变量赋值给一个全局变量.
信号处理函数就使用那个全局变量.

论坛徽章:
0
6 [报告]
发表于 2007-10-24 13:27 |只看该作者
原帖由 baohuaihuai 于 2007-10-24 13:22 发表
一进入那个函数,就把那个局部变量赋值给一个全局变量.
信号处理函数就使用那个全局变量.


这种方法不错, 我开始想的是使用全局的一个指针去指向它, 不过这样的话, 如果函数退出栈就消失了.
还是你这种赋值的方式好些!

论坛徽章:
0
7 [报告]
发表于 2007-10-24 13:32 |只看该作者
原帖由 baohuaihuai 于 2007-10-24 13:22 发表
一进入那个函数,就把那个局部变量赋值给一个全局变量.
信号处理函数就使用那个全局变量.



呵呵,有全局变量的话,还要局部的副本干吗,还要费事去同步副本

论坛徽章:
0
8 [报告]
发表于 2007-10-24 13:55 |只看该作者
原帖由 xB1ue 于 2007-10-24 13:32 发表



呵呵,有全局变量的话,还要局部的副本干吗,还要费事去同步副本


不知道楼主的真正需求是什么

论坛徽章:
0
9 [报告]
发表于 2007-10-24 14:09 |只看该作者
原帖由 wuxiangzhi 于 2007-10-24 13:19 发表
除了共享内存以外,想不到办法来实现这一怪异的需求:) 哪位有好的思路?

这算什么怪异?应该很常见啊 大家处理信号的时候不需要传入参数给信号处理函数?

论坛徽章:
0
10 [报告]
发表于 2007-10-24 14:17 |只看该作者
原帖由 baohuaihuai 于 2007-10-24 13:55 发表


不知道楼主的真正需求是什么

func()
{
    signal(SIGPIPE,handle)
   int num;
   在这里通过函数调用给num赋值

}

void handle()
{
   这里要使用num 你说怎么能访问到吧
}

handle定义在func 外面说num没有定义,还不能定义在func里面
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP