27.4.2 実行
-UniObjGenオプションを指定してコンパイルしたプログラムを正しく実行するには,実行時環境変数CBLLANGにUNICODEを指定してください。実行時環境変数CBLLANGについては,「35.3.3 一般」を参照してください。
ここでは,実行時での規則について説明します。
- 〈この項の構成〉
(1) 実行時環境変数CBLLANGとCBLUNIENDIANの関係
実行時環境変数CBLLANGの設定形式を次に示します。
- 形式
CBLLANG=UNICODE
実行時環境変数CBLUNIENDIANの設定形式を次に示します。
- 形式
CBLUNIENDIAN={LITTLE|BIG}
実行時環境変数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の関係を,次に示します。
-UniObjGenオプション指定 |
環境変数CBLLANG指定 |
|
---|---|---|
UNICODE |
指定なし(デフォルト) |
|
指定あり |
○※ |
× |
指定なし |
× |
○ |
- (凡例)
-
○:動作を保証する
×:動作を保証しない
- 注※
-
Unicode機能で動作します。
(3) -UniEndianオプションと実行時環境変数CBLUNIENDIANの関係
-UniEndianオプションの指定(Little/Big)と,実行時環境変数CBLUNIENDIANの指定(LITTLE/BIG)の組み合わせが異なる場合,動作は保証しません。-UniEndianオプションと実行時環境変数CBLUNIENDIANの関係を次に示します。
-UniEndianオプションの指定 |
環境変数CBLUNIENDIANの指定 |
||||
---|---|---|---|---|---|
LITTLE |
BIG |
指定なし(デフォルト) |
|||
AIX |
Linux |
||||
-UniEndian,Little |
○ |
× |
× |
○ |
|
-UniEndian,Big |
× |
○ |
○ |
× |
|
指定なし |
AIX |
× |
○ |
○ |
− |
Linux |
○ |
× |
− |
○ |
- (凡例)
-
○:動作を保証する
×:動作を保証しない
−:該当しない
(4) コード変換失敗時の動作
コード変換ライブラリの前提条件を満たしていない環境で,実行時環境変数CBLLANGにUNICODEを指定して実行した場合,コード変換失敗となります。コード変換失敗時の動作を次に示します。
機能 |
コード変換失敗時の動作 |
---|---|
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プログラムを実行した場合,実行時エラーとなり,プログラムの実行を中止します。