cobsetjmp 関数で、ローカルでない GO TO をエラーや例外処理に使用できるようにします。
#include "cobsetjmp.h"
void coblongjmp(struct cobjmp_buf *buf);| buf | 現在の実行環境が保存されるバッファー。 | 
cobsetjmp() 関数は、buf で指定されたバッファーに、現在の COBOL プログラムと C 関数の環境を保存します。 cobsetjmp() 関数は、0 の値を返却する C ライブラリ関数 setjmp() を呼び出します。
cobsetjmp() を呼び出した C 関数のどこかからか、C や COBOL サブプログラムから coblongjmp() が続けて呼び出されると、cobsetjmp() 呼び出しの直後に実行が回復されます。
coblongjmp() 呼び出し後、cobsetjmp() は 0 でない値を返却し、cobsetjmp() 呼び出し後にその値がテストされます。
coblongjmp() と cobsetjmp() 関数の使用には、次のような制限があります。
なし
次の例は、coblongjmp() と cobsetjmp() 関数の使用法を示しています。
void
some_c_func(void)
{
    struct cobjmp_buf buf;
    if (cobsetjmp(&buf) != 0)
    {
        cobprintf("Returned from coblongjmp\n");
        return;
    }
    /* ここに有効なプログラムコードを記述 - たとえば COBOL の呼び出し */
    coblongjmp(&cobjmp_buf);
}