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 を設定できます。