COBOL プログラム、サブプログラム、入口点に対する関数のポインターを返却します。
#include "cobcall.h" PFR cobgetfuncaddr(int type, const cobchar_t *name);
type | 指定されたプログラムが見つからなかった場合に返却されるものを示します。
|
||||||||||||
name | 見つける COBOL プログラムの名前を指定する NULL で終了する文字列。 |
この関数は、指定された名前の COBOL プログラムへの関数ポインターを返却します。
指定されたプログラムが既にロードされた COBOL プログラムの入口点である場合、そのプログラムが使用されます。 あるいは、指定された名前が C 関数の場合、そのプログラムが使用されます。 そうでなければ、指定された名前の基本名を持つプログラムが、標準の COBOL 検索順序とパスを使用してディスク上で検索されます。 プログラムの検索順序を変更するには、program_search_order ランタイム チューナーを使用します。
エラー関数が返却され (bit 0 が 1 に設定される) 、そのエラー関数が呼び出されると、cobcall() に対するランタイムのエラーが作られます。
この関数は指定された名前のプロフラムをロードするだけで、呼び出しは行いません。 これで、そのプログラムがプレロードされます。 これは、特に、プログラム内で、そのプログラムのメインの入口点ではなく、入口点を呼び出す場合には有用です。
set procedure-pointer to entry "name"
次の C プログラムは、COBOL プログラム cobprog を 2 つの引数で呼び出し、エラー条件でコピーします。
PFR cobprog; if ((cobprog = cobgetfuncaddr(0, "cobprog")) == NULL) { /* エラーの場合 */ } else { /* ロード済み */ (*cobprog)(arg1, arg2); /* ここで呼び出し */ }