COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

10.4 環境変数へのアクセス

ACCEPT文,DISPLAY文を使用して,環境変数の値を取得・設定する方法について説明します。

環境変数のアクセスについては,マニュアル「COBOL2002 言語 拡張仕様編 10. コマンド行のアクセス」を参照してください。

<この節の構成>
(1) 環境変数の値の読み込み
(2) 環境変数への値の書き出し
(3) 環境変数へのアクセスに関する規則
(4) 使用例

(1) 環境変数の値の読み込み

DISPLAY文(環境変数名の設定)の形式
DISPLAY {一意名4|定数1} UPON 呼び名3※1
        〔END-DISPLAY〕

ACCEPT文(環境変数の値の取得)の形式
ACCEPT 一意名2 FROM 呼び名42
       〔ON EXCEPTION 無条件文3〕
       〔NOT ON EXCEPTION 無条件文2〕
       〔END-ACCEPT〕
注※1
呼び名3は,環境部の特殊名段落で,ENVIRONMENT-NAMEに関連づけておく必要があります。
注※2
呼び名4は,環境部の特殊名段落で,ENVIRONMENT-VALUEに関連づけておく必要があります。

(2) 環境変数への値の書き出し

DISPLAY文(環境変数名の設定)の形式
DISPLAY {一意名4|定数1} UPON 呼び名3※1
        〔END-DISPLAY〕

DISPLAY文(環境変数の値の書き出し)の形式
DISPLAY {一意名2|定数2} UPON 呼び名4※2
        〔ON EXCEPTION 無条件文1〕
        〔NOT ON EXCEPTION 無条件文2〕
        〔END-DISPLAY〕
注※1
呼び名3は,環境部の特殊名段落で,ENVIRONMENT-NAMEに関連づけておく必要があります。
注※2
呼び名4は,環境部の特殊名段落で,ENVIRONMENT-VALUEに関連づけておく必要があります。

(3) 環境変数へのアクセスに関する規則

(4) 使用例

実行時の環境変数指定
CBLABNLST=\tmp\abnlst
CBLDDUMP=\tmp\dumplst

プログラム例1
環境変数へのアクセス例を次に示します。
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE1.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       ENVIRONMENT-NAME IS ENVNAM
       ENVIRONMENT-VALUE IS ENVVAL.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ENVNAME1 PIC X(9).
       01 ENVNAME2 PIC X(8).
       01 ENVDATA PIC X(20).
       PROCEDURE DIVISION.
           :
           MOVE 'CBLABNLST' TO ENVNAME1.
           DISPLAY ENVNAME1 UPON ENVNAM.  …1.
           ACCEPT ENVDATA FROM ENVVAL     …2.
               ON EXCEPTION 〜
               :
               NOT ON EXCEPTION 〜
               :
           END-ACCEPT.
           :
           MOVE 'CBLDDUMP' TO ENVNAME2.
           MOVE '\tmp\dumplst2' TO ENVDATA.
           DISPLAY ENVNAME2 UPON ENVNAM.  …3.
           DISPLAY ENVDATA UPON ENVVAL    …4.
               ON EXCEPTION 〜
               :
               NOT ON EXCEPTION 〜
               :
           END-DISPLAY.
           :
  1. 値を取得したい環境変数名(CBLABNLST)を指定します。
  2. 1.で指定した環境変数(CBLABNLST)の値(\tmp\abnlst)を取得します。
  3. 値を設定したい環境変数名(CBLDDUMP)を指定します。
  4. 3.で指定した環境変数(CBLDDUMP)に値(\tmp\dumplst2)を設定します。

プログラム例2
環境変数へのアクセスがプログラム間にわたる場合の,環境変数の値の取得例を次に示します。
 
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE1.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       ENVIRONMENT-NAME IS ENVNM.
                  :                 
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ENVNAME PIC X(9).
       PROCEDURE DIVISION.
                  :
           MOVE 'CBLABNLST' TO ENVNAME.
           DISPLAY ENVNAME UPON ENVNM.   …1.
                  :
           CALL 'SAMPLE2'.
                  :
 
 
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       ENVIRONMENT-VALUE IS ENVVAL.
           :        
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ENVDATA PIC X(20).
       PROCEDURE DIVISION.
           :
           ACCEPT ENVDATA FROM ENVVAL  …2.
                  ON EXCEPTION 〜
                  :                
                  NOT ON EXCEPTION 〜
                  :
           END-ACCEPT.
           :
  1. 値を取得したい環境変数名(CBLABNLST)を指定します。
  2. 1.で指定した環境変数(CBLABNLST)の値(\tmp\abnlst)を取得できます。

プログラム例3
環境変数へのアクセスがプログラム間にわたる場合の,環境変数の値の設定例を次に示します。
 
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE1.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       ENVIRONMENT-NAME IS ENVNM.
                  :
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ENVNAME PIC X(9).
       PROCEDURE DIVISION.
                  :
           MOVE 'CBLABNLST' TO ENVNAME.
           DISPLAY ENVNAME UPON ENVNM.  …1.
                  :
           CALL 'SAMPLE2'.
                  :
 
 
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       ENVIRONMENT-VALUE IS ENVVAL.
           :
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ENVDATA PIC X(20).
       PROCEDURE DIVISION.
           :
           MOVE '\tmp\abnlst' TO ENVDATA.
           DISPLAY ENVDATA UPON ENVVAL  …2.
                   ON EXCEPTION 〜
                   :
                   NOT ON EXCEPTION 〜
                   :
           END-DISPLAY.
           :
  1. 値を設定したい環境変数名(CBLABNLST)を指定します。
  2. 1.で指定した環境変数(CBLABNLST)に(\tmp\abnlst)を設定できます。