19.1.1 概要
- 〈この項の構成〉
(1) COBOLプログラム,Cプログラム間でのプログラムの呼び出し
COBOLプログラムからCプログラムを呼び出したり,逆にCプログラムからCOBOLプログラムを呼び出したりできます。
ただし,COBOLプログラムを呼び出すCプログラムや,COBOLプログラムから呼び出されるCプログラムは,システムの規則に従って作成する必要があります。
(2) COBOLプログラム,Cプログラム間での引数の引き渡し方法
COBOLプログラムとCプログラムとの間で引数を引き渡すには次の方法があります。
-
ポインタ型で引き渡す方法
-
値渡しで引き渡す方法
-
CALL文の引数にADDRESS OF/LENGTH OF一意名を指定する方法(ただし,COBOLからCを呼ぶ場合だけ)
(3) 構造化例外処理使用時の注意事項
構造化例外処理を使用してCOBOLプログラム実行中の例外を処理する場合の注意事項を次に示します。
-
システム例外発生後,__except節のフィルタ式以外の個所でCOBOLプログラムやCOBOLのサービスルーチンを呼び出すことはできません。
-
__except節のフィルタ式中では,COBOLプログラムを呼び出せます。また,この延長でCBLABNサービスルーチンを呼び出して,プログラムを終了できます。
(4) Cプログラムでの64bitアプリケーションの作成(Windows(x64) COBOL2002で有効)
Cプログラムは,64bitアプリケーションとして作成しなければならず,システムによってはCコンパイラのオプションが必要な場合があります。Cコンパイラのオプションについては,システムのマニュアルを参照してください。64bitアプリケーションでは,ポインタ型のサイズは8バイトになります。
(5) 他言語で標準出力や標準エラー出力をする場合の注意事項
標準出力や標準エラー出力をしている他言語プログラムのあとに呼び出されるCOBOLプログラムで,DISPLAY文や実行時メッセージを標準出力や標準エラー出力に出力している場合,データの出力順が前後することがありますので,COBOLプログラムを呼び出す前に標準出力や標準エラー出力のバッファをフラッシュしてください。