Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all 
      
    
名前
       longjmp, siglongjmp - 保存されたスタックコンテキスト (stack context)  への非局所的なジャンプ
書式
       #include <setjmp.h>
       void longjmp(jmp_buf env, int val);
       void siglongjmp(sigjmp_buf env, int val);
   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):
       siglongjmp(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE
説明
       longjmp()   と setjmp(3)  は、プログラムの低レベルなサブルーチンにおいて、 エラーや割り込みが発生した時の
       処理に便利である。 longjmp()  は、env 引き数を指定して呼び出された最後の setjmp(3)   によって保存された環
       境を復元する。  longjmp()   の完了後、プログラムの実行は、まるで対応する setjmp(3)  の呼び出しが値 val で
       返って来たかように続行される。 longjmp()  は 0 を返すように指示することはできない。 二番目の引き数に 0 を
       指定して longjmp()  が呼ばれた場合は、代わりに 1 が返されることになる。
       siglongjmp()  は、引き数 env の型が異なる点以外は、 longjmp()  と同様である。 env を保存した sigsetjmp(3)
       が  0  以外の  savesigs   フラグで呼び出されていた場合で、   かつ、その場合にのみ、   siglongjmp(3)    は
       sigsetjmp(3)  より保存されていたシグナルマスクの復元を行う。
返り値
       これらの関数が返ることはない。
準拠
       longjmp()  は C89, C99, POSIX.1-2001 で規定されている。 siglongjmp()  は POSIX.1-2001 で規定されている。
注意
       POSIX  では、  longjmp()  がシグナルコンテキスト  (signal  context)  を復元  するかどうか規定されていない
       (setjmp(3)  にも少し詳しい情報がある)。  移植性のある方法で、シグナルマスクを保存し復元させたい場合には、
       sigsetjmp(3) と siglongjmp() を使うこと。
       以下の条件が全て成立する場合、 longjmp()  の呼び出しが行われた後の自動変数の値は未定義 (unspecified) とな
       る。
       •  その自動変数が、対応する setjmp(3)  呼び出しを行った関数のローカル変数である。
       •  自動変数の値が setjmp(3)  と longjmp()  の間で変更されている。
       •  volatile として宣言されていない。
       同様の注意が siglongjmp()  にもあてはまる。
       longjmp()  や siglongjmp()  を使うと、プログラムは理解しづらく、保守しにくいものになる。 別の方法が可能な
       ら、それを使うべきである。
関連項目
       setjmp(3), sigsetjmp(3)
この文書について
       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
                                                   2009-01-13                                         LONGJMP(3)