C から COBOL プログラム、サブプログラムやエントリ ポイントを呼び出します。
制約事項: この関数は、ネイティブ COBOL でのみサポートされます。
構文:
#include "cobcall.h"
cobrtncode_t cobcall (const cobchar_t *name, int argc,
cobchar_t **argv);
パラメーター:
name |
呼び出される COBOL プログラムの名前を指定した NULL で終了する文字列 |
argc |
argv で渡される引数の数 |
argv |
COBOL プログラムへ渡される引数 |
相当する COBOL 構文:
call "name" [using ...] [returning ...]
例:
COBOL エントリ ポイント cobep を 2 つの文字列引数で C 関数から呼び出すには、次のいずれかの方法を使用します。
cobchar_t *argv[2];
argv[0] = arg1;
argv[1] = arg2;
cobcall("cobep", 2, argv);
または
cobep(arg1, arg2);
説明:
この関数は、argv で渡される引数で、指定された名前の COBOL プログラムを呼び出すのに使用されます。各パラメーターは参照渡しされます。
cobcall() の結果は、ANSI '74 規格に定義されている COBOL 型の呼び出しになり、その動作も COBOL から COBOL エントリ ポイントを呼び出した場合と同様です。
この関数は、C 構文で C プログラムから直接 COBOL プログラムを呼び出すのと同じです。
指定された名前がロード済みの COBOL プログラムのエントリ ポイントであれば、そのプログラムが呼び出されます。指定された名前が C の関数の場合は、その関数が呼び出されます。この 2 つに該当しない場合には、指定された名前のベース名を持つプログラムがディスク上で検索されます。検索順序は次のとおりです。
指定された名前に合致するプログラムが見つからないとランタイム エラーが発生します。
COBOL エントリ ポイントに引数が必要ない場合は、argc は 0 で argv は NULL です。