C および C++ アプリケーションの開発

CICS® アプリケーション・プログラムとして使用する C® および C++ プログラムのコーディング、翻訳、コンパイルにお役立てください。

アプリケーションプログラミング言語に対する CICSの変更では、 z/OS®のCICS でサポートされているCおよびC++コンパイラと、 z/OS 上のそれらのサービスステータスが記載されています。 CICS Transaction Server for z/OS ドキュメントにおける C および C++ への言及はすべて、特に断りのない限り、サポートされている Language Environment® 準拠コンパイラの使用を意味します。 COBOL、PL/I、およびアセンブラー言語のアプリケーションで使用可能なすべての EXEC CICS コマンドは、C および C++ のアプリケーションでもサポートされていますが、非構造化例外処理に関連するコマンドは例外となります。

C++ のアプリケーションでは、CICS C++ OO クラスを使用して、EXEC CICS インターフェースの代わりに CICS サービスにアクセスすることもできます。 このインターフェースの詳細については、 CICS 基礎クラスの使用」 を参照してください。 C++ はオブジェクト指向プログラミングをサポートしており、C 言語と同じ方法で使用することができます。 変換プログラムでは、C++ の変換には CPP オプションを使用するように指定する必要があります。 また、C++ プログラムは、LANGUAGE(LE370) オプションも使用して定義しなければなりません。

作業用ストレージ

C および C++ では、作業用ストレージはスタックおよびヒープで構成されています。 スタックおよびヒープの位置は、16 MB 境界に関して、スタックおよびヒープのランタイム・オプションの ANYWHERE および BELOW オプションによって制御されます。 デフォルトでは、スタックおよびヒープは両方とも 16 MB 境界より上のアドレスに置かれています。

サンプル・プログラム

C または C++ 言語で書かれたプログラムで、EXEC CICS コマンドを使用する方法を示すために、一組のサンプル・アプリケーション・プログラムが提供されています。
表 1. サンプル・プログラム
サンプル・プログラム マップ・セット マップ・ソース トランザクション ID
DFH$DMNU オペレーター用指示 (3270) DFH$DGA DFH$DMA DMNU
DFH$DALL 更新 (3270) DFH$DGB DFH$DMB DINQ、DADD、DUPD
DFH$DBRW ブラウズ (3270) DFH$DGC DFH$DMC DBRW
DFH$DREN 受注 (3270) DFH$DGK DFH$DMK DORD
DFH$DCOM 受注キュー印刷 (3270) DFH$DGL DFH$DML DORQ
DFH$DREP レポート (3270) DFH$DGD DFH$DMD DREP
トランザクションおよびプログラム定義は CICS (CSD) のグループ DFH$DFLA に用意されており、以下のコマンドを使用してインストールできます
CEDA INSTALL GROUP(DFH$DFLA)
次のレコード記述ファイルは、C または C++ 言語のヘッダー・ファイルとして提供されます。
  • DFH$DFIL: FILEA レコード記述子
  • DFH$DL86: L860 レコード記述子

FLOAT コンパイラー・オプション

z/OS V1.11 XL C (または C++) 以降では、FLOAT(NOAFP) コンパイラー・オプション、または FLOAT(AFP(VOLATILE)) コンパイラー・オプションのいずれかを指定します。
  • ユーザーのプログラムで浮動小数点をほとんど使用しない場合は、FLOAT(NOAFP) オプションを指定します。 そのプログラムでは、従来からある 4 つの浮動小数点レジスターのみを使用し、レジスターの保管時の処理は少ないです。
  • ユーザーのプログラムで浮動小数点を主に使用する場合は、FLOAT(AFP) オプションまたは FLOAT(NOVOLATILE) オプションを指定します。 そのプログラムでは、16 の浮動小数点レジスターのすべてを使用し、CICS ではプログラムによって使用された浮動小数点レジスターが保存されます。
  • FLOAT(AFP(VOLATILE)) オプションを指定する場合は、CICS、C、および C++ で浮動小数点レジスターが保存されます。 追加のコードが生成されるため、パフォーマンスが低下する場合があります。