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) 64bitアプリケーション作成時の注意事項(AIX(64),Linux(x64)で有効)
Cプログラムは,64bitアプリケーションとして作成しなければならず,システムによってはCコンパイラのオプションが必要な場合があります。Cコンパイラのオプションについては,システムのマニュアルを参照してください。64bitアプリケーションでは,ポインタ型およびlong型のサイズは8バイトになります。
(4) 他言語で標準出力や標準エラー出力をする場合の注意事項
標準出力や標準エラー出力をしている他言語プログラムのあとに呼び出されるCOBOLプログラムで,DISPLAY文や実行時メッセージを標準出力や標準エラー出力に出力している場合,データの出力順が前後することがありますので,COBOLプログラムを呼び出す前に標準出力や標準エラー出力のバッファをフラッシュしてください。
(5) Linux(x64) COBOL2002コンパイル時の注意
Linux(x64) COBOL2002は,スモールコードモデルのオブジェクトコードを生成します。したがって,COBOLプログラムと連携させるC言語プログラムはスモールコードモデルでコンパイルされている必要があります。スモールコードモデルの詳細およびC言語プログラムをスモールコードモデルでコンパイルする方法については,システムのマニュアルを参照してください。