longjmp() - C函數

C庫函數void longjmp(jmp_buf environment, int value)到jmp_buf環境,恢復由最近一次調用對setjmp()宏在同一程式與correspondingjmp_buf參數調用保存的環境。

聲明

以下是longjmp()函數的聲明。

void longjmp(jmp_buf environment, int value)

參數

  • environment -- 這是到jmp_buf類型的對象包含了setjmp的調用點恢復環境資訊。

  • value -- 這是包括setjmp運算式計算的值。

返回值

這個函數不返回任何值。

例子

下麵的例子演示了如何使用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
", val);
      exit(0);
   }
   printf("Jump function call
");
   jmpfunction( env_buffer );

   return(0);
}

void jmpfunction(jmp_buf env_buf)
{
   longjmp(env_buf, "zaixiansxuhuhu.com");
}

讓我們編譯和運行上面的程式,這將產生以下結果:

Jump function call
Returned from a longjmp() with value = zaixiansxuhuhu.com

上一篇: setjmp() - C函數 下一篇: <signal.h> - C語言標準庫