9.3 Windows/UNIXの数字データ格納形式の相違
UNIX形式とWindows形式では,バイナリ形式のデータ(2進項目および内部浮動小数点項目)がメモリ上に配置されるときの順序が次の例のように逆になります。
- (例)
-
513(=X'00000201')が4バイトの2進項目に配置された場合の違い
-
ビッグエンディアン形式(UNIX)
-
リトルエンディアン形式(Windows)
-
このため,CosminexusがWindows,OpenTP1がUNIXの場合,バイナリ形式のデータは,リトルエンディアン形式のデータ値でCOBOL SPP/MHPに渡ってしまいます。この場合,Windows側で,endian(big)を指定することで,データの配置が反転され,ビッグエンディアン形式のデータ値で,COBOL SPP/MHPに渡すことができます。
またCosminexusがUNIX,OpenTP1がWindowsの場合,Windows側で,COBOL SPP/MHPコンパイル時に-BigEndian,Binコンパイラオプション※1,-BigEndian,Floatコンパイラオプション※2を指定することで,COBOL SPP/MHPは,ビッグエンディアン形式でデータを受け取ることができます。
endianオプションの詳しい説明および設定方法は,「5.3 TP1/COBOLアクセス環境変数の設定」の設定をご覧ください。
-BigEndian,Binコンパイラオプション※1,-BigEndian,Floatコンパイラオプション※2については,マニュアル「COBOL2002 ユーザーズガイド」をご覧ください。
- 注※1
-
COBOL85をご使用の場合は,-Bbコンパイラオプションを指定してください。
- 注※2
-
COBOL85をご使用の場合は,-Fbコンパイラオプションを指定してください。