C$CHDIR

現在の作業ディレクトリを変更します。
注: This ACUCOBOL-GT library routine is available in this COBOL version. Any compatibility issues in this COBOL system are in the Compatibility Issues section at the end of the topic.

使用法

CALL "C$CHDIR" 
    USING DIR-NAME, ERR-NUM

パラメーター

DIR-NAME PIC X(n) 新しいディレクトリの名前またはスペースを含めます。

シン クライアントのサポート用の「@[DISPLAY]:」を使用できます。次に例を示します。

C$CHDIR "@[DISPLAY]:C:\path"

シン クライアント環境では、表示ホスト上で現在のデフォルト ディレクトリを取得するには、DIR_NAME で「@[DISPLAY]:」の後にスペースを入れます。

ERR-NUM PIC 9(9) COMP-4 (オプション) 返されたエラー番号またはゼロ (成功の場合) を保持します。

説明

2 番目の USING パラメーターを渡す場合、PIC 9(9) COMP-4 と記述する必要があります。このパラメーターは、ディレクトリの変更が成功した場合、ゼロに設定されます。エラーが発生した場合は、オペレーティング システムのエラー番号が含まれます。

DIR-NAME にスペースが含まれる場合、現在のデフォルトのディレクトリがその中に返されます。この場合、ERR-NUM は使用されません。それ以外は、新しいデフォルトのディレクトリにするディレクトリの名前を DIR-NAME に含める必要があります。Windows マシンでは、この中にドライブ名を含められます。ERR-NUM を渡す場合、変更が成功すると、このパラメーターはゼロに設定されます。それ以外は、オペレーティング システムから返されるエラー値が ERR-NUM に含まれます。

存在しないディレクトリへの切り替えが可能なシステム (VMS など) と、切り替えが許可されないシステム (Windows、UNIX) があります。

このルーチンの動作は、FILENAME_SPACES 構成変数の影響を受けます。FILENAME_SPACES の値によって、ファイル名にスペースを使用できるかどうかが決まります。

重要

C$CHDIR を使用する場合、CODE_PREFIX 構成エントリを作成してオブジェクト ファイルの場所を検索します。CODE-PREFIX で指定する検索場所は、すべてフル パス名にしてください。CODE_PREFIX には、現在のディレクトリ名や相対パス名を使用しないでください。フル パス名を使用しないと、ランタイム システムは、オブジェクト ファイルを再度開く必要がある場合にそのファイルを見つけられません。

たとえば、ランタイム システムは、次の場合にオブジェクト ファイルを再度開く必要があります。

  • ソース デバッガーを使用している場合
  • プログラムにセグメンテーション (オーバーレイ) が含まれる場合
  • オブジェクト ライブラリを使用している場合

オブジェクト ファイルを、現在のディレクトリ、または現在のディレクトリに対して相対的に指定されたディレクトリで検出した後に、現在のディレクトリを C$CHDIR ルーチンで変更した場合、ランタイム システムはオブジェクト ファイルを再度開く必要がある場合にそのファイルを見つけられません。これにより、致命的なエラーが生じ、プログラムが停止します。

C$CHDIR を使用する際にデバッグ モードで実行している場合、必ず環境ではなく構成ファイルで CODE_PREFIX を設定してください。デバッグ モードではない場合は、環境で CODE_PREFIX を設定できます。

互換性の問題

  • 「@[DISPLAY]」はこの COBOL システムではサポートされていません。
  • FILENAME_SPACES 構成変数は、この COBOL システムでサポートされていません。スペースを含むファイル名を使用するには、名前を引用符で囲みます。
  • CODE_PREFIX 構成変数は、この COBOL システムでサポートされていません。