26.4.2 実行

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

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

<この項の構成>
(1) 実行時環境変数CBLLANGとCBLUNIENDIANの関係
(2) -UniObjGenオプションと実行時環境変数CBLLANGの関係(AIX(32),AIX(64)の場合)
(3) -UniEndianオプションと実行時環境変数CBLUNIENDIANの関係
(4) コード変換失敗時の動作
(5) EUC環境でCOBOLプログラムを実行した場合(HP-UX(IPF),AIX(32),AIX(64)で有効)
(6) UTF-8環境でCOBOLプログラムを実行した場合(Linux(x86),Linux(x64)で有効)

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

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

形式

CBLLANG=UNICODE

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

形式

CBLUNIENDIAN={LITTLE|BIG}

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

表26-3 実行時環境変数CBLLANGとCBLUNIENDIANの関係

環境変数CBLLANG指定環境変数CBLUNIENDIAN指定
LITTLEBIG指定なし(デフォルト)
HP-UX(IPF)
AIX(32)
AIX(64)
Linux(x86)
Linux(x64)
指定ありUNICODE指定あり用途がNATIONALの項目UTF-16LEを仮定UTF-16BEを仮定UTF-16BEを仮定UTF-16LEを仮定
用途がDISPLAYの項目UTF-8を仮定(環境変数CBLUNIENDIANの影響はない)
指定なし無変換該当しない
注※
Linux(x86),Linux(x64)の場合,環境変数CBLLANGにUNICODEを指定しなければなりません。指定がない場合は実行時エラーとなります。

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

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

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

-UniObjGenオプション指定環境変数CBLLANG指定
UNICODE指定なし(デフォルト)
指定あり×
指定なし×
(凡例)
○:動作を保証する
×:動作を保証しない
注※
Unicode機能で動作します。

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

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

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

-UniEndianオプションの指定環境変数CBLUNIENDIANの指定
LITTLEBIG指定なし(デフォルト)
HP-UX(IPF)
AIX(32)
AIX(64)
Linux(x86)
Linux(x64)
-UniEndian,Little××
-UniEndian,Big××
指定なしHP-UX(IPF)
AIX(32)
AIX(64)
×
Linux(x86)
Linux(x64)
×
(凡例)
○:動作を保証する
×:動作を保証しない
-:該当しない

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

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

表26-6 コード変換失敗時の動作

機能コード変換失敗時の動作
CSV編成ファイルの入出力実行時エラーとなる。
CBLNCNVサービスルーチン戻り値として-2または-3を返す。詳細については,「28.6.1 CBLNCNV」を参照のこと。

(5) EUC環境でCOBOLプログラムを実行した場合(HP-UX(IPF),AIX(32),AIX(64)で有効)

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

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

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