CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

谁给我讲讲longjmp,我给弄糊涂了!

楼主ly00(明日杀手)2004-12-03 10:54:25 在 专题开发/技术/项目 / 数据结构与算法 提问

下面的程序运行结果和预期相去甚远,为什么?  
  #include<stdio.h>  
  #include<signal.h>  
  #include<setjmp.h>  
  jmp_buf   buf;  
  void   fun(int   s)  
  {  
          puts("I   love   you!");  
          longjmp(buf,0);  
          puts("welcome   to   here!");  
  }  
  int   main()  
  {  
          signal(SIGINT,&fun);  
          if(setjmp(buf))  
  {  
  puts("!!!!!Good!!!!!");  
  return   0;  
  }  
   
   
          //loop:  
          else   puts("First   thought   the   main");  
   
          for(;;);  
           
  }  
  输入Ctrl+C为什么没有能打印出!!!!!Good!!!!!,不是应该跳转到这前面吗? 问题点数:100、回复次数:2Top

1 楼mathe()回复于 2004-12-03 12:49:16 得分 50

说明longjmp不能在signal函数里面处理呀。  
  Try  
  int   main()  
  {  
  if(setjmp(buf))  
  {  
  puts("!!!!!Good!!!!!");  
  return   0;  
  }  
   
   
  //loop:  
  else   puts("First   thought   the   main");  
   
  fun(1);  
  }Top

2 楼BlueSky2008(懒惰是程序员的美德)回复于 2004-12-03 13:09:52 得分 50

setjmp   returns   0   after   saving   the   stack   environment.   If   setjmp   returns   as   a   result   of   a   longjmp   call,   it   returns   the   value   argument   of   longjmp,   or   if   the   value   argument   of   longjmp   is   0,   setjmp   returns   1.   There   is   no   error   return.  
   
  Top

相关问题

  • ============我被弄糊涂了=============
  • 弄糊涂了的问题
  • 帮忙给讲讲!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 高手给讲讲INSTALLSHIELD。。。。。。。
  • 高手给讲讲servlet listener!
  • 请高手给讲讲
  • 给个例子讲讲Group By。
  • 谁能给我讲讲VFW?
  • A a = new B();哪位给讲讲
  • 一个简单问题把我弄糊涂了,关于海伦公式

关键词

  • longjmp
  • setjmp
  • puts
  • buf
  • fun
  • good
  • main
  • include

得分解答快速导航

  • 帖主:ly00
  • mathe
  • BlueSky2008

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo