プログラムの呼び出しに使用する検索規約

制限事項: この情報は .NETマネージコードには適用されません。

プログラムを呼び出す際、ランタイムシステムはプログラムがすでにロードされているか、または論理的にキャンセルされているかを確認します。 すでにプログラムがメモリ上で使用できる場合、ランタイムシステムはプログラムに制御を渡します。

プログラムが使用できない場合、ランタイムシステムは最初に現在のディレクトリでプログラムを検索し、次に呼び出し側プログラムを含むディレクトリ、そして COBDIR 環境変数で設定されているディレクトリを検索します。

ここで説明する検索順序は、実行可能ファイル (プログラム) に適用されます。 データファイルや COBOL ソースファイルなど、他のファイルタイプには適用されません。 また、ディスクに実行可能なバージョンのプログラムが 1 つしかない場合は、ここに書かれている内容を考慮する必要はありません。

ランタイムシステムは最初に、呼ばれるプログラムを現在のディレクトリで検索します。 呼ばれるプログラムが明示的に指定されている場合 (名前と拡張子が指定されている場合) は、特定の実行可能ファイルが検索されます。 呼ばれるプログラムが暗黙的に指定されている場合 (ベース名が指定され、拡張子が指定されていない場合) は、ランタイムシステムにより次の順序で実行可能ファイルが検索されます。

  1. filename.dll (Windows)
  2. filename.so (UNIX)
  3. filename

呼ばれるプログラムが現在のディレクトリで見つからない場合、ランタイムシステムは呼び出し側プログラムのディレクトリで検索を繰り返し、次に COBDIR 環境変数で設定されている各ディレクトリを検索します。 最後のディレクトリまで検索しても実行可能ファイルが見つからない場合、ランタイムシステムは「プログラムが見つかりません」というエラーメッセージを表示します。

これはランタイムシステムのデフォルトの動作です。検索順序は、 Configure Application Environment ダイアログを使用して変更できます。

ライブラリファイルの場合、ランタイムシステムはライブラリファイルを開いて、実行可能なファイル filename.ext を検索します。 .ext 上記の他の実行可能なファイルタイプであり、 .dll 以外のファイルです。 .

注: ドル記号 ($) がプログラム名の最初の文字であり、そのプログラムが動的にリンクされている場合、または動的にロード可能な場合は、プログラム名の最初の要素が確認されてファイル名のマッピングが行われます。 プログラム名の最初の要素とは、最初のバックスラッシュ文字 (\) より前のすべての文字です。 プログラム名の最初の要素とは、最初のバックスラッシュ文字 (\) より前のすべての文字です。 たとえば、ソースプログラムに
 CALL "$MYLIB\A"
の文が含まれる場合、プログラムの実行時に MYLIB 環境変数で定義されるパスから副プログラム A がロードされます。