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 コマンドを使用する方法を示すために、一組のサンプル・アプリケーション・プログラムが提供されています。| サンプル・プログラム | マップ・セット | マップ・ソース | トランザクション 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++ で浮動小数点レジスターが保存されます。 追加のコードが生成されるため、パフォーマンスが低下する場合があります。