#include "cobcall.h" PFR cobgetfuncaddr(int type, const cobchar_t *name);
ビット | 説明 |
---|---|
0 | 0 または 1 のいずれかを指定します。
|
1 から 31 | 予約済み |
set procedure-pointer to entry "name"
次の C コードは COBOL プログラム cobprog を 2 つの引数を使って呼び出し、その際に発生する可能性があるエラーにも対処します。
PFR cobprog; if ((cobprog = cobgetfuncaddr(0, "cobprog")) == NULL) { /* Error case */ } else { /* Loaded */ (*cobprog)(arg1, arg2); /* Call it! */ }
説明:
この関数は、指定された名前の COBOL プログラムへの関数ポインターを返します。
指定された名前がロード済みの COBOL プログラムのエントリ ポイントであれば、そのプログラムが使用されます。指定された名前が C の関数の場合も、その関数を含むプログラムが使用されます。この 2 つに該当しない場合には、指定された名前のベース名を持つプログラムが、標準の COBOL 検索順序とパスを使用してディスク上で検索されます。
エラー関数が返され (ビット 0 を 1 に設定した場合)、そのエラー関数が呼び出されると、cobcall() と同じようにランタイム エラーが生成されます。
この関数は指定された名前のプログラムをロードしますが、呼び出しは行いません。そのため、プログラムをプリロードする手段として使用できます。この機能は、プログラム内のメイン エントリ ポイント以外のエントリ ポイントを呼び出す必要がある場合に役立ちます。