方法 3

物理ディスク ファイル名は、UNIX シェル環境変数を使用して指定することができます。この方法は、方法 1 および 2 よりも優先されます。この方法では、同一アプリケーションのさまざまな呼び出しで使用される物理ディスク ファイルを容易に変えることができます。前述のいずれかの方法からの派生名にプレフィックス MF_ または DD_ を付けた名前の環境変数を使用してファイルの場所を指定するか、DCB_ddname 環境変数を使用できます。

派生名の環境変数

参照ファイルの場所をハードコーディングするのではなく、参照ファイルの場所を指すように 1 つ以上の環境変数を設定できます。それぞれのファイルについて、方法 1 または方法 2 からの派生名にプレフィックス MF_ または DD_ を付けた名前の環境変数を設定します。

注: プレフィックス MF_DD_ は同等であり、区別なく使用できます。

たとえば、次のコードでは、開いているファイルの場所が指定されていません。

dcl file data2 update; 
dcl file specs output; 

open file (data2); 
open file (specs) title('report');

次の環境変数により、場所がプログラムに認識されます。

set MF_DATA2   /common/data
set MF_REPORT   /common/report

ファイル data2 の入出力操作は /common/data にアクセスし、ファイル specs の入出力は /common/report にアクセスします。

この例では、2 番目の open 文で title オプションが 'report' に設定され、ファイル名 specs がオーバーライドされているため、2 番目の環境変数の名前は MF_REPORT です。

注: 物理ファイルを次の特殊なファイル宣言に割り当てるには、対応する環境変数を使用する必要があります。
SYSIN DD_STDIN を使用
SYSPRINT DD_STDOUT を使用
SYSOUT DD_STDOUT を使用

DCB_ddname 環境変数

DCB_ddname 環境変数は、JCL がない場合のデータセットの特性の指定に使用します。各特性は、個々の値をスペースで区切った一連の値で表されます。

Windows:

set DCB_ddname type record-length format 

UNIX/Linux:

export DCB_ddname type record-length format 
type
有効な値は次のとおりです。
  • RECORD
  • STREAM
  • VSAM
record-length
有効な値は 1 から 32765 までです。
format
有効な値は次のとおりです。
  • F (固定長レコードの場合)
  • V (可変長レコードの場合)

たとえば、長さが 20 でファイル名が MUMBLY の FIXED LENGTH ファイルが RECORD の入出力で使用されている場合、環境変数の設定は次のようになります。

Windows:

set DCB_MUMBLY=RECORD 20 F

UNIX/Linux:

export DCB_MUMBLY=RECORD 20 F
注: DCB_ddname 環境変数が指定されておらず、フォーマットとレコード サイズが FILE 宣言の ENV() オプションの一部として使用されていない場合、ファイルは ASCII の LSEQ ファイルであると見なされます。