C-standard-library-c-function-longjmp

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-longjmp()

説明

Cライブラリ関数* void longjmp(jmp_buf environment、int value)は、対応する *jmp_buf 引数を持つプログラムの同じ呼び出しで、* setjmp()*マクロの最新の呼び出しによって保存された環境を復元します。

宣言

以下は、longjmp()関数の宣言です。

void longjmp(jmp_buf environment, int value)

パラメーター

  • environment -これは、setjmpの呼び出しポイントで環境を復元するための情報を含む jmp_buf 型のオブジェクトです。
  • -これは 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\n", val);
      exit(0);
   }
   printf("Jump function call\n");
   jmpfunction( env_buffer );

   return(0);
}

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

次の結果を生成する上記のプログラムをコンパイルして実行しましょう-

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