この関数は、ネイティブ COBOL でのみサポートされます。
#include "cobsetjmp.h" void coblongjmp(struct cobjmp_buf *buf);
| buf | 現在の実行環境が保存されるバッファー。 | 
なし。
次の例は、coblongjmp() と cobsetjmp() 関数の使用法を示しています。
void
some_c_func(void)
{
    struct cobjmp_buf buf;
    if (cobsetjmp(&buf) != 0)
    {
        cobprintf("Returned from coblongjmp\n");
        return;
    }
  
    /* Valid code here - for example can call COBOL */
    coblongjmp(&cobjmp_buf);
} 
               	 
説明:
cobsetjmp() 関数は、buf で指定されたバッファーに、現在の COBOL プログラムと C 関数の環境を保存します。cobsetjmp() 関数は、0 の値を返す C ライブラリ関数 setjmp() を呼び出します。
cobsetjmp() の呼び出しに続いて、同じ C 関数内やそのサブプログラム (C または COBOL) 内で coblongjmp() が呼び出されると、cobsetjmp() を呼び出した直後の位置から実行が再開されます。
coblongjmp() の呼び出し後、cobsetjmp() はゼロ以外の値を返します。この戻り値をチェックすれば、cobsetjmp() の結果を知ることができます。
coblongjmp() と cobsetjmp() 関数の使用には、次のような制限があります。