CBLENDサービスルーチンは,-MainNotCBLオプションを指定してコンパイルしたプログラムが動作したときに,設定したCOBOLの実行環境を終了させるものです。
このサービスルーチンは,CALL文で呼び出すのではなく,COBOL以外のプログラム内で使用します。
- 記述例
extern int CBLEND(); /* CBLENDの外部参照宣言 */
CBLEND(); /* CBLENDの呼び出し */
- 引数
- なし。
- 戻り値
- 0:正常終了した場合
- -1:COBOLプログラムが動作中であるため,CBLENDサービスルーチンが無視された場合
- 注意事項
- CBLENDサービスルーチンは,COBOLプログラムが終了したあと,1回だけ呼び出さなければなりません。
- COBOLプログラム内でSTOP RUN文を実行した場合,CBLENDサービスルーチンを呼び出す必要はありません。
- COBOLプログラム内でSTOP RUN文を実行したあと,CBLENDサービスルーチンを呼び出した場合,何も処理しないでリターンします。
- CBLENDサービスルーチンは,COBOL以外の言語から呼び出さなければなりません。
CBLENDサービスルーチンをCOBOLプログラムから呼び出した場合,結果は保証しません。
- CBLENDサービスルーチンを呼び出したあとでも,再度COBOLプログラムを呼び出せます。この場合,CBLENDサービスルーチンを呼び出す前のCOBOL実行環境が終了しているため,新たな実行環境でCOBOLプログラムが実行されます。
- 再度COBOLプログラムを呼び出さないで,CBLENDサービスルーチンを複数回呼び出した場合,2回目以降の呼び出しでは何も処理しないでリターンします。
- このサービスルーチンを使用するプログラムでは,リンク時に次の共用ライブラリを指定してください。
HP-UX(IPF),HP-UX(IPF64)の場合:libcbl2k.so
AIX(32)の場合:libcbl2k.a
AIX(64)の場合:libcbl2k64.a
Linuxの場合:libcbl2k.so
Solaris(SPARC)の場合:libcbl2k.so
- 使用例
![[図データ]](FIGURE/ZUW30400.GIF)
- C言語で記述されたmain関数から,-MainNotCBLオプション指定でコンパイルしたCOBOLプログラムAPLSUBを呼び出します。
- APLSUBは,COBOL副プログラムとして処理されるため,EXIT PROGRAM文で制御が戻るとき,COBOL実行環境が終了されません。
- CBLENDサービスルーチンを呼び出して,COBOL実行環境を終了します。
All Rights Reserved. Copyright (C) 2014, 2017, Hitachi, Ltd.