COBOL2002 ユーザーズガイド

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

4.2.2 外部属性(EXTERNAL句)

EXTERNAL句を指定したデータ名やファイル名は,外部属性を持ち,COBOL実行単位内で一つの領域を共用できます。

COBOL実行環境中では,次の範囲でEXTERNAL領域を指定できます。

ファイル数,またはデータ領域の数が上限を超えた場合は,実行時エラーとなります。

EXTERNAL句については,マニュアル「COBOL2002 言語 標準仕様編 9.16.25 EXTERNAL句」を参照してください。

<この項の構成>
(1) 共有可能属性と共有不可能属性
(2) EXTERNAL領域にVARIANTデータ項目を含む場合の注意事項
(3) EXTERNAL属性チェック

(1) 共有可能属性共有不可能属性

外部属性を持つデータ項目には,他言語と共有できるEXTERNAL領域(共有可能属性),および他言語と共有できないEXTERNAL領域(共有不可能属性)があります。

データ項目が次に示す条件のどれかに該当する場合,共有不可能属性のEXTERNAL領域となります。

共有可能属性のEXTERNAL領域に対するCOBOLとC言語との共有については,「20.1.5 外部属性を持つデータ項目の共用」を参照してください。

共有可能属性と共有不可能属性では,データ項目の初期値が異なります。

(a) 共有可能属性の初期値
(b) 共有不可能属性の初期値

共有不可能属性のEXTERNAL領域の初期値は不定です。

ただし,環境変数CBLEXVALUEに「NULL」を指定することで,EXTERNAL領域の初期値をNULL(X'00')に設定できます。環境変数CBLEXVALUEは,COBOLプログラムの実行によってCOBOLの実行環境中で初めて出現する共有不可能属性の各EXTERNAL領域に対して,一度だけ作用します。

環境変数CBLEXVALUEの指定方法を次に示します。

形式
CBLEXVALUE=NULL

規則
  • 環境変数CBLEXVALUEは,作業場所節に定義されている共有不可能属性のデータ項目だけを初期化します。
  • 初期値の指定に誤りがある場合,実行時エラーとなります。

(2) EXTERNAL領域にVARIANTデータ項目を含む場合の注意事項

EXTERNAL領域にVARIANTデータ項目を含む場合,次の規則に従って初期値(X'00')を設定しておく必要があります。

(3) EXTERNAL属性チェック

EXTERNAL句を指定したデータ名やファイル名がある場合,プログラムの実行時に属性チェックをします。このとき,プログラム間で属性が一致していないと実行時エラーとなります。

EXTERNAL属性チェックのチェック項目を次に示します。

(a) データ項目に対するチェック項目
(b) ファイルに対するチェック項目