coblongjmp

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() 関数の使用には、次のような制限があります。

同等の COBOL 構文

なし

次の例は、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);
}