組み込みファイル

/COPY 指示および /INCLUDE 指示では、QSYS ファイル・システムまたは IFS いずれかのファイルを指定することができます。コンパイラーが、指示が参照するファイル・システムを認識できない場合は、 /COPY 指示が入っているファイルのファイル・システムで検索が開始されます。

コンパイラーが /COPY ステートメントを検出すると、 そのステートメントは IFS または QSYS ファイル・システム内のファイルを参照できるようになります。 名前の先頭がスラッシュの場合、または名前が単一引用符で囲まれて指定された場合、 その名前は IFS のファイルだけを指すことになります。 IFS の名前の指定には、二重引用符も使用できます。 次のように、名前の一部分しか二重引用符で囲まれていない場合、
 /copy "SOME-LIB"/QRPGLESRC,MBR
その名前は QSYS ファイル・システム名のみを指すことになります。

名前が QSYS ファイル・システムの名前か、IFS の名前か分からない場合は、 最初に、/COPY ステートメントが入っているファイルのファイル・システムが検索されます。 大文字は、QSYS ファイル・システムでは使用できますが (ただし、"A/B" のように二重引用符を使って指定する拡張名は除きます)、 IFS では使用できないことに注意してください (IFS では大文字小文字の区別がありません)。

表 1. QSYS および IFS の /Copy ファイル名解釈
/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 は統合ファイル・システムの有効な名前であることに注意)
/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 でファイルを検索している場合、 ファイル名にドットが入っていないと、 RPG コンパイラーは次の拡張子を持つファイルを (この順序で) 検索します。
  1. 拡張子なし (abc)
  2. .rpgleinc (abc.rpgleinc)
  3. .rpgle (abc.rpgle)