COBOL2002 使用の手引 手引編


27.4.2 実行

-UniObjGenオプションを指定してコンパイルしたプログラムを正しく実行するには,実行時環境変数CBLLANGにUNICODEを指定してください。実行時環境変数CBLLANGについては,「35.3.3 一般」を参照してください。

ここでは,実行時での規則について説明します。

〈この項の構成〉

(1) 実行時環境変数CBLLANGとCBLUNIENDIANの関係

実行時環境変数CBLLANGの設定形式を次に示します。

形式
CBLLANG=UNICODE

実行時環境変数CBLUNIENDIANの設定形式を次に示します。

形式
CBLUNIENDIAN={LITTLE|BIG}

実行時環境変数CBLLANGとCBLUNIENDIANの関係を,次に示します。

表27‒3 実行時環境変数CBLLANGとCBLUNIENDIANの関係

環境変数CBLLANG指定

環境変数CBLUNIENDIAN指定

LITTLE

BIG

指定なし(デフォルト)

AIX

Linux

指定あり

UNICODE指定あり

用途がNATIONALの項目

UTF-16LEを仮定

UTF-16BEを仮定

UTF-16BEを仮定

UTF-16LEを仮定

用途がDISPLAYの項目

UTF-8を仮定(環境変数CBLUNIENDIANの影響はない)

指定なし

無変換

該当しない

注※

Linuxの場合,環境変数CBLLANGにUNICODEを指定しなければなりません。指定がないときは実行時エラーとなります。

(2) -UniObjGenオプションと実行時環境変数CBLLANGの関係(AIXの場合)

-UniObjGenオプションと実行時環境変数CBLLANGの関係を,次に示します。

表27‒4 -UniObjGenオプションと実行時環境変数CBLLANGの関係

-UniObjGenオプション指定

環境変数CBLLANG指定

UNICODE

指定なし(デフォルト)

指定あり

×

指定なし

×

(凡例)

○:動作を保証する

×:動作を保証しない

注※

Unicode機能で動作します。

(3) -UniEndianオプションと実行時環境変数CBLUNIENDIANの関係

-UniEndianオプションの指定(Little/Big)と,実行時環境変数CBLUNIENDIANの指定(LITTLE/BIG)の組み合わせが異なる場合,動作は保証しません。-UniEndianオプションと実行時環境変数CBLUNIENDIANの関係を次に示します。

表27‒5 -UniEndianオプションと実行時環境変数CBLUNIENDIANの関係

-UniEndianオプションの指定

環境変数CBLUNIENDIANの指定

LITTLE

BIG

指定なし(デフォルト)

AIX

Linux

-UniEndian,Little

×

×

-UniEndian,Big

×

×

指定なし

AIX

×

Linux

×

(凡例)

○:動作を保証する

×:動作を保証しない

−:該当しない

(4) コード変換失敗時の動作

コード変換ライブラリの前提条件を満たしていない環境で,実行時環境変数CBLLANGにUNICODEを指定して実行した場合,コード変換失敗となります。コード変換失敗時の動作を次に示します。

表27‒6 コード変換失敗時の動作

機能

コード変換失敗時の動作

CSV編成ファイルの入出力

実行時エラーとなる。

CBLNCNVサービスルーチン

戻り値として-2または-3を返す。詳細については,「29.7.1 CBLNCNV」を参照のこと。

DISPLAY-OF関数/NATIONAL-OF関数

実行時エラーとなる。

(5) EUC環境でCOBOLプログラムを実行した場合(AIXで有効)

EUC環境で,実行時環境変数CBLLANGにUNICODEを指定してCOBOLプログラムを実行した場合,実行時エラーとなり,プログラムの実行を中止します。

(6) UTF-8環境でCOBOLプログラムを実行した場合(Linuxで有効)

UTF-8環境で,実行時環境変数CBLLANGにUNICODEを指定しないでCOBOLプログラムを実行した場合,実行時エラーとなり,プログラムの実行を中止します。