Everything

longjmp


setjmp関数で退避していた関数の実行環境を回復し、setjmp関数を呼び出したプログラムの位置に制御を移動します。

[指定形式]

#include <setjmp.h>

void longjmp(jmp_buf env, long ret);

[引数]

env 実行環境を退避した記憶域へのポインタ

ret setjmp関数へのリターンコード

[備考]

longjmp関数は、同じプログラム中で最後に呼び出されたsetjmp関数によって退避された関数の実行環境を第1引数envで指定された記憶域から回復し、そのsetjmp関数を呼び出したプログラムの位置に制御を移します。この時longjmp関数の第2引数retがsetjmp関数のリターン値として返ります。ただし、retが0の時はsetjmp関数へのリターン値としては1が返ります。

setjmp関数が呼び出されていない時、あるいはsetjmp関数を呼び出した関数がすでにreturn文を実行している時は、longjmp関数の動作は保証しません。