IFS 内での検索パス

IFS 内で /COPY ファイルおよび /INCLUDE ファイルを探す場所を示す方法は 2 つあります。
  1. INCDIR パラメーター。ディレクトリーを検索順にリストします。
  2. RPGINCDIR 環境変数。ディレクトリーを検索順にコロンで区切って指定したリストが入っています。 この環境変数を設定するには、ADDENVVAR コマンド または CHGENVVAR コマンドを使用します。

    例: ADDENVVAR ENVVAR(RPGINCDIR) VALUE('/home/mydir:/project/prototypes')ADDENVVAR

IFS で相対ファイル (パスの先頭が / ではないファイル) を検索する場合は、ファイルは次の場所および次の順序で検索されます。
  1. 現行ディレクトリー
  2. INCDIR コマンド・パラメーターで指定されたパス
  3. RPGINCDIR 環境変数内のディレクトリー
  4. ソース・ディレクトリー (ソースが IFS ファイルの場合)
次に例を示します。
  • 現行ディレクトリーが /home/auser。
  • INCDIR パラメーターが /driver/r1.2/inc:/driver/r1.1/inc。
  • RPGINCDIR 環境変数が /home/auser/temp。
  • ソースがディレクトリー /home/auser/src 内。
ディレクトリー検索パスは、デフォルト拡張子の順序に優先します。 拡張子のないファイルを複数の異なるディレクトリーで検索する場合は、 次のディレクトリーに変換する前に、各ディレクトリーですべての拡張子を付けた検索が行われます。
表 1. /Copy ファイルの検索順序
/Copy ステートメント 検索するファイル

IFS では、/COPY が入っている
ソース・ファイルは
/driver/src/main.rpg であると見なす

/COPY file.rpg

IFS の場合:

/home/auser/file.rpg
/driver/r1.2/inc/file.rpg
/driver/r1.1/inc/file.rpg
/home/auser/temp/file.rpg
/home/auser/src/file.rpg

QSYS の場合:

FILE(*LIBL/QRPGLESRC) MBR(FILE.RPG)

QSYS ファイル・システムでは、
/COPY が入っているソース・ファイルは
MYLIB/QRPGLESRC MYMBR であると
見なす

/COPY file

QSYS の場合:

FILE(*LIBL/QRPGLESRC) MBR(FILE)

IFS の場合:

/home/auser/file
/home/auser/file.rpgleinc
/home/auser/file.rpgle

/driver/r1.2/inc/file
/driver/r1.2/inc/file.rpgleinc
/driver/r1.2/inc/file.rpgle

/driver/r1.1/inc/file
/driver/r1.1/inc/file.rpgleinc
/driver/r1.1/inc/file.rpgle

/home/auser/temp/file
/home/auser/temp/file.rpgleinc
/home/auser/temp/file.rpgle

/home/auser/src/file
/home/auser/src/file.rpgleinc
/home/auser/src/file.rpgle