当前位置:  技术问答>linux和unix

困惑:setjmp()和longjmp()

    来源: 互联网  发布时间:2014-11-12

    本文导语:  哪位帮忙看一下这段程序: #include  #include  #include  jmp_buf position; main() {     int goback();      ……     /*保存当前堆栈环境*/     setjmp(position);     signal(SIGINT,goback);     domenu();     …… } goback() {   ...

哪位帮忙看一下这段程序:
#include 
#include 
#include 

jmp_buf position;

main()
{
    int goback();
     ……
    /*保存当前堆栈环境*/
    setjmp(position);
    signal(SIGINT,goback);
    domenu();
    ……
}
goback()
{
    fprintf(stderr,"nInterruptedn");
    /*跳转回被保存的断点*/
    longjmp(position,1);
}

position是什么?是地址吗?还是……
longjmp跳回到主程序的哪里?

|
恢复以前的运行环境,

到setjmp处

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • setjmp SEGMENTATION FAULT 错误。
  • setjmp函数,一个jmp_buf用两次会有什么情况? 谢谢
  • 关于signal与setjmp的配合使用时遇到的一个问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3