Hitachi

SEWB+/標準サブルーチン ライブラリリファレンス


1.2.3 Linux(EM64T)用標準サブルーチンの適用方法

〈この項の構成〉

(1) 提供形態

Linux(EM64T)用標準サブルーチンは,スレッド種別(シングルスレッド対応用とマルチスレッド対応用),ライブラリ形式(アーカイブ形式と共用ライブラリ形式),および文字コード形式とバイナリデータのエンディアン格納形式の組み合わせによって,全16種類のライブラリが提供されます。Linux(EM64T)用標準サブルーチンのライブラリの種類一覧について,次の表に示します。

なお,上記に加えてそれぞれの種類ごとに(和暦)規格の標準版とJIS規格版の2種類が提供されます。

これらを正しく使い分けないと,サブルーチンが正常に動作しない場合があるので,注意してください。

表1‒12 Linux(EM64T)用標準サブルーチンのライブラリの種類一覧

ライブラリの種類

種類詳細

スレッド種別

シングルスレッド対応用/マルチスレッド対応用の2種類

文字コード形式

UNI_BIG/UNI_LITTLEの2種類

バイナリデータのエンディアン形式

BIG/LITTLEの2種類

ファイル形式

アーカイブ形式/共用ライブラリ形式の2種類

(和暦)規格

標準版とJIS規格版の2種類

注※

UNI_BIG/UNI_LITTLEはUnicode対応版ライブラリのUTF-16文字データのエンディアン(UNI_BIG=UTF-16BE/UNI_LITTLE=UTF-16LE)を示します。

なお,各ライブラリにあるJIS規格版では標準版に対して,実在日チェック(和暦)[LXRPID02],年月日変換(西暦→和暦)[LXRPID05]で各年号の期間が異なります。年号の詳細な期間については,「標準サブルーチン仕様書」を参照してください。

Unicode対応版の提供形態を次に示します。

表1‒13 Linux(EM64T)用標準サブルーチンの提供形態

格納場所

構成物

提供形態

/opt/SEWB64

├─ja_JP.UTF-8

| └─COMMON

|   └─RTSP

|     └─Cbl_Source

コピークローズ

テキストファイル

├─lib

シングルスレッド対応ライブラリ

表1-14 libディレクトリの内容」を参照

└─mthread

  └─lib

マルチスレッド対応ライブラリ

表1‒14 libディレクトリの内容

ファイル名

形式

ライブラリ形式

libLxUniBSB.a

文字データ,バイナリデータが共にビッグエンディアン形式のライブラリ

アーカイブ形式

libLxUniBSB.so

共用ライブラリ形式

libLxUniBJB.a

上記のJIS規格版

アーカイブ形式

libLxUniBJB.so

共用ライブラリ形式

libLxUniBSL.a

文字データがビッグエンディアン,バイナリデータがリトルエンディアン形式のライブラリ

アーカイブ形式

libLxUniBSL.so

共用ライブラリ形式

libLxUniBJL.a

上記のJIS規格版

アーカイブ形式

libLxUniBJL.so

共用ライブラリ形式

libLxUniLSB.a

文字データがリトルエンディアン,バイナリデータがビッグエンディアン形式のライブラリ

アーカイブ形式

libLxUniLSB.so

共用ライブラリ形式

libLxUniLJB.a

上記のJIS規格版

アーカイブ形式

libLxUniLJB.so

共用ライブラリ形式

libLxUniLSL.a

文字データ,バイナリデータが共にリトルエンディアン形式のライブラリ

アーカイブ形式

libLxUniLSL.so

共用ライブラリ形式

libLxUniLJL.a

上記のJIS規格版

アーカイブ形式

libLxUniLJL.so

共用ライブラリ形式

(a) コピークローズ

標準サブルーチンのインタフェーステーブルが記述されています。標準サブルーチンを使用して作成したプログラムをコンパイルするときに使用します。

(b) シングルスレッド対応ライブラリ

シングルスレッド対応プログラムで標準サブルーチンを使用するときに使用します。

(c) マルチスレッド対応ライブラリ

マルチスレッド対応プログラムで標準サブルーチンを使用するときに使用します。

(d) ビッグエンディアン形式のライブラリ

標準サブルーチンを使用して作成したプログラムを,ビッグエンディアン環境で実行するときに使用します。

(e) リトルエンディアン形式のライブラリ

標準サブルーチンを使用して作成したプログラムを,リトルエンディアン環境で実行するときに使用します。

(f) 文字データ,バイナリデータ

ここでの文字データとは日本語文字列定数,バイナリデータとは2進および浮動小数点のデータ項目を示します。文字データおよびバイナリデータの形式は,コンパイルオプションの使用によって変わります。詳細については,「1.2.3(2)(c) コンパイル・リンケージ」を参照してください。

(2) 適用方法

Linux(EM64T)用標準サブルーチンを使用してユーザアプリケーションプログラムを作成する手順を次に示します。

(a) 前提条件

Linux(EM64T)用標準サブルーチンでUnicode対応版を利用する場合,次に示すソフトウェアが必要となります。

  • 日立コード変換 - Runtime(64)

(b) 環境変数の設定

  • PATH,LD_LIBRARY_PATH

    環境変数PATHおよびLD_LIBRARY_PATHに標準サブルーチンのライブラリの格納パスを追加する必要があります。sh(Bourneシェル)を例に,環境変数の設定例を次に示します。

    (例1)シングルスレッド対応版ライブラリを使用する場合

    PATH=${PATH}:/opt/SEWB64/lib

    LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/SEWB64/lib

    export PATH LD_LIBRARY_PATH

    (例2)マルチスレッド対応版ライブラリを使用する場合

    PATH=${PATH}:/opt/SEWB64/mthread/lib

    LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/SEWB64/mthread/lib

    export PATH LD_LIBRARY_PATH

  • CBLLIB

    環境変数CBLLIBに標準サブルーチンのインタフェーステーブル格納パスを設定する必要があります。

    (例)Unicode対応版を使用する場合

    CBLLIB=${CBLLIB}:/opt/SEWB64/ja_JP.UTF-8/COMMON/RTSP/Cbl_Source

    export CBLLIB

  • LANG

    環境変数LANGに使用するロケールを設定する必要があります。

    (例)Unicode対応版を使用する場合

    LANG=ja_JP.UTF-8

    export LANG

  • CBLLANG,CBLSRCENCODING,CBLUNIENDIAN

    Unicode 対応版を使用する場合は,環境変数CBLLANG に'UNICODE',環境変数CBLSRCENCODING に'SJIS'を指定し,さらに,環境変数CBLUNIENDIAN に'BIG',または'LITTLE'を指定する必要があります。

    (例)Unicode対応版(文字データがリトルエンディアン形式)を使用する場合

    CBLLANG=UNICODE

    export CBLLANG

    CBLSRCENCODING=SJIS

    export CBLSRCENCODING

    CBLUNIENDIAN=LITTLE

    export CBLUNIENDIAN

(c) コンパイル・リンケージ

ccbl2002コマンドを使用して,コンパイルおよびリンケージを行います。

ユーザアプリケーションでのコンパイルオプションの使用の有無によって,リンクの対象となる標準サブルーチンのライブラリファイルが変わります。使用するコンパイルオプションと,リンクの対象となるライブラリファイルの対応を次に示します。

コンパイルオプションの設定方法,および各コンパイルオプションの機能については,マニュアル「COBOL2002 使用の手引 手引編」を参照してください。

表1‒15 コンパイルオプションとリンク対象ライブラリファイルとの対応(シングルスレッド対応ライブラリの場合)

オプション名

UNI_BIG

UNI_LITTLE

BIG

LITTLE

BIG

LITTLE

.a

.so

.a

.so

.a

.so

.a

.so

-UniObjGen

-UniEndian,Big

×

×

×

×

-UniEndian,Little

×

×

×

×

-BigEndian,Bin

×

×

×

×

-BigEndian,Float

×

×

×

×

(凡例)

○:指定する

×:指定しない

UNI_BIG:文字データがビッグエンディアン

UNI_LITTLE:文字データがリトルエンディアン

BIG:バイナリデータがビッグエンディアン

LITTLE:バイナリデータがリトルエンディアン

表1‒16 コンパイルオプションとリンク対象ライブラリファイルとの対応(マルチスレッド対応ライブラリの場合)

オプション名

UNI_BIG

UNI_LITTLE

BIG

LITTLE

BIG

LITTLE

.a

.so

.a

.so

.a

.so

.a

.so

-UniObjGen

-UniEndian,Big

×

×

×

×

-UniEndian,Little

×

×

×

×

-BigEndian,Bin

×

×

×

×

-BigEndian,Float

×

×

×

×

-MultiThread

-lpthread

(凡例)

○:指定する

×:指定しない

UNI_BIG:文字データがビッグエンディアン

UNI_LITTLE:文字データがリトルエンディアン

BIG:バイナリデータがビッグエンディアン

LITTLE:バイナリデータがリトルエンディアン

コンパイルオプションの指定例を次に示します。

(例1)シングルスレッド対応版,文字データがリトルエンディアン,バイナリデータがビッグエンディアン形式のアーカイブ形式ライブラリを使用する場合

(a)標準サブルーチンを呼び出すメインプログラムをコンパイルする場合

ccbl2002 -UniObjGen -UniEndian,Little -BigEndian,Bin -BigEndian,Float
-Main,System ABC.cbl -OutputFile ABC -L/opt/SEWB64/lib -Link,-Bstatic
-lLxUniLSB -Link,-Bdynamic

(b)標準サブルーチンを呼び出すメインプログラムがコンパイル済みの場合

ccbl2002 -UniObjGen -UniEndian,Little -BigEndian,Bin -BigEndian,Float
-OutputFile ABC ABC.o -L/opt/SEWB64/lib -Link,-Bstatic
-lLxUniLSB -Link,-Bdynamic
(例2)シングルスレッド対応版,文字データがリトルエンディアン,バイナリデータがビッグエンディアン形式の共有ライブラリを使用する場合

(a)標準サブルーチンを呼び出すメインプログラムをコンパイルする場合

ccbl2002 -UniObjGen -UniEndian,Little -BigEndian,Bin -BigEndian,Float -Main,System ABC.cbl -OutputFile ABC -L/opt/SEWB64/lib -lLxUniLSB

(b)標準サブルーチンを呼び出すメインプログラムがコンパイル済みの場合

ccbl2002 -UniObjGen -UniEndian,Little -BigEndian,Bin -BigEndian,Float -OutputFile ABC ABC.o -L/opt/SEWB64/lib -lLxUniLSB
(例3)マルチスレッド対応版,文字データがビッグエンディアン,バイナリデータがリトルエンディアン形式の共用ライブラリを使用する場合

(a)標準サブルーチンを呼び出すメインプログラムをコンパイルする場合

ccbl2002 -MultiThread -UniObjGen -UniEndian,Big 
-Main,System ABC.cbl -OutputFile ABC
-L/opt/SEWB64/mthread/lib -lLxUniBSL -lpthread

(b)標準サブルーチンを呼び出すメインプログラムがコンパイル済みの場合

ccbl2002 -MultiThread -UniObjGen -UniEndian,Big 
-OutputFile ABC ABC.o
-L/opt/SEWB64/mthread/lib -lLxUniBSL -lpthread