/COPY 指示および /INCLUDE 指示では、 QSYS ファイル・システムまたは IFS ファイル・システムいずれかのファイルを指定することができます。 コンパイラーが、指示が参照するファイル・システムを認識できない場合は、 /COPY 指示が入っているファイルのファイル・システムで検索が開始されます。
コンパイラーが /COPY ステートメントを検出すると、 そのステートメントは IFS または QSYS ファイル・システム内のファイルを参照できるようになります。 名前の先頭がスラッシュの場合、または名前が単一引用符で囲まれて指定された場合、 その名前は IFS のファイルだけを指すことになります。 IFS の名前の指定には、二重引用符も使用できます。 次のように、名前の一部分しか二重引用符で囲まれていない場合、
/copy "SOME-LIB"/QRPGLESRC,MBR
その名前は QSYS ファイル・システム名のみを指すことになります。
名前が QSYS ファイル・システムの名前か、IFS の名前か分からない場合は、 最初に、/COPY ステートメントが入っているファイルのファイル・システムが検索されます。 大文字は、QSYS ファイル・システムでは使用できますが (ただし、"A/B" のように二重引用符を使って指定する拡張名は除きます)、 IFS では使用できないことに注意してください (IFS では大文字小文字の区別がありません)。
/Copy ステートメント | QSYS での解釈 | IFS での解釈 (".suffix" の意味については、下記を参照) |
---|---|---|
/COPY MYMBR |
FILE(*LIBL/QRPGLESRC) MBR(MYMBR) |
組み込みパス内のディレクトリーの 1 つにある MYMBR または MYMBR.suffix |
/COPY mymbr |
FILE(*LIBL/QRPGLESRC) MBR(MYMBR) |
組み込みパス内のディレクトリーの 1 つにある mymbr または mymbr.suffix |
/COPY myfile,mymbr |
FILE(*LIBL/MYFILE) MBR(MYMBR) |
myfile,mymbr または myfile,mymbr.suffix (MYFILE,MYMBR は IFS ファイル・システムの有効な名前であることに注意) |
/COPY mylib/myfile,mymbr |
FILE(MYLIB/MYFILE) MBR(MYMBR) |
mylib/myfile,mymbr (ディレクトリー mylib およびファイル myfile,mymbr) |
/COPY "A/b",mymbr |
FILE(*LIBL/"A/b") MBR(MYMBR) |
N/A (名前の一部分しか二重引用符で囲まれていない) |
/COPY "A/B" |
FILE(*LIBL/QRPGLESRC) MBR("A/B") |
A/B |
/COPY a b |
FILE(*LIBL/QRPGLESRC) MBR(A) (ブランクの後ろは すべてコメントと見なされ る) |
a または a.suffix (ブランクの後ろはすべて コメントと見なされる) |
/COPY 'a b' | N/A (名前が単一引用符で囲まれている) | a b または a b.suffix |
/COPY /home/mydir/myfile.rpg | N/A (名前がスラッシュで始まる) | /home/mydir/myfile.rpg |
/COPY /QSYS.LIB/ L.LIB/F.FILE/M.MBR |
N/A (名前がスラッシュで始まる) |
/QSYS.LIB/L.LIB/F.FILE/ M.MBR (実際には QSYS ファイル・システム内の ファイルだが、RPG には IFS ファイルと見なされ る) |
IFS 内で /COPY ファイルおよび /INCLUDE ファイルを探す場所を示す方法は 2 つあります。
例: ADDENVVAR ENVVAR(RPGINCDIR) VALUE('/home/mydir:/project/prototypes')ADDENVVAR
IFS で相対ファイル (パスの先頭が / ではないファイル) を検索する場合は、ファイルは次の場所および次の順序で検索されます。
次に例を示します。
ディレクトリー検索パスは、デフォルト拡張子の順序に優先します。 拡張子のないファイルを複数の異なるディレクトリーで検索する場合は、 次のディレクトリーに変換する前に、各ディレクトリーですべての拡張子を付けた検索が行われます。
/Copy ステートメント | 検索するファイル |
---|---|
IFS では、/COPY が入っている ソース・ファイルは /driver/src/main.rpg であると見なす /COPY file.rpg |
IFS の場合: /home/auser/file.rpg /driver/v5r2/inc/file.rpg /driver/v5r1/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/v5r2/inc/file /driver/v5r2/inc/file.rpgleinc /driver/v5r2/inc/file.rpgle /driver/v5r1/inc/file /driver/v5r1/inc/file.rpgleinc /driver/v5r1/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 |
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.