目录

void longjmp(jmp_buf environment, int value)

描述 (Description)

C库函数void longjmp(jmp_buf environment, int value)在相应的程序调用中使用相应的jmp_buf参数恢复最近调用setjmp()宏所保存的环境。

声明 (Declaration)

以下是longjmp()函数的声明。

void longjmp(jmp_buf environment, int value)

参数 (Parameters)

  • environment - 这是jmp_buf类型的对象,包含在setjmp的调用点恢复环境的信息。

  • value - 这是setjmp表达式计算的值。

返回值 (Return Value)

此函数不返回任何值。

例子 (Example)

以下示例显示了longjmp()函数的用法。

#include <stdio.h>
#include <stdlib.h>
#include <setjmp.h>
int main () {
   int val;
   jmp_buf env_buffer;
   /* save calling environment for longjmp */
   val = setjmp( env_buffer );
   if( val != 0 ) {
      printf("Returned from a longjmp() with value = %s\n", val);
      exit(0);
   }
   printf("Jump function call\n");
   jmpfunction( env_buffer );
   return(0);
}
void jmpfunction(jmp_buf env_buf) {
   longjmp(env_buf, "iowiki.com");
}

让我们编译并运行上面的程序,它将产生以下结果 -

Jump function call
Returned from a longjmp() with value = iowiki.com
↑回到顶部↑
WIKI教程 @2018