| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1959 人关注过本帖
标题:请教signal的问题
取消只看楼主 加入收藏
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
 问题点数:0 回复次数:10 
请教signal的问题

#include<stdio.h>
#include<signal.h>
#include<setjmp.h>
jmp_buf buf;
void handle(int s)
{
if(i==SIGINT)printf("信号还没有到达\n");
longjmp(buf,2);
}
void main()
{
signal(SIGINT,handle);
int i=setjmp(buf);

if(i!=0){printf("the signal's return value:%d\n",i);}
else {printf("I will go handle\n");}

//在这里循环等待,直至输入Ctrl+c.
loop:
goto loop;
}
请问为什么输入了ctrl+c后,结果是read错误呢?这个signal到底是怎么回事情呢?特别是第一个函数。什么时候该用什么呢?
signal(int, void (__cdecl *)(int))函数的原形是这个。signal(SIGINT,handle);书上这样写算怎么回事情呢?

搜索更多相关主题的帖子: signal 
2006-09-04 20:57
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
应该是这样的,调试的时候忘记了改回来。请各位老大指教!
void handle(int s)
{
if(s==SIGINT)printf("信号还没有到达\n");
longjmp(buf,2);
}
2006-09-04 21:01
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
你说的我都知道,我问的是,为什么运行会出现错误,大哥
2006-09-04 21:26
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
loop:
goto loop;
要等信号,如果没有的话,程序就直接执行完了,signal的第一个参数是信号处理函数,第二个是函数.
在我的程序里运行的时候却是有错误,好象是返回不了.因为"信号还没有到达"这个可以打印出来!
2006-09-04 22:37
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
有高手回答没.
2006-09-05 10:01
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 

可能是操作系统的原因,因为我让朋友在LINUX的机子上试了,得到了我想要的答案.但是在WINDOWS上却得不到!!!

2006-09-05 18:09
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
非要是这么定义的,在头文件里.至于为什么jmp_buf buf;我也不是很清楚,头文件里是这样,所以我也要写成这样
2006-09-05 22:29
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 

在我的程序里,他是识别出了信号,但是却没有实行跳转,就是longjmp(),出现了“不知道的软件异常错误”.但是我在UNIX下却得以实现,是否操作系统不同导致的呢?

2006-09-06 08:30
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
老兄,你怎么联系呢?
2006-09-06 13:02
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
老兄,我还希望在信号处理函数里面,通过longjmp(),跳转到setjmp啊,这一步是如何实现的呢?请指教!!!
2006-09-06 13:09
快速回复:请教signal的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041791 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved