ファイル制御記述 (FCD)

ファイル制御記述 (FCD) とは、使用中のファイルに関する情報を記述したデータ領域のことです。FCD には 2 つのバージョンがあり、どちらを使用するかは COBOL 開発システムを 32 ビットと 64 ビットのどちらのオペレーティング システムで実行するかによって決まります。これを次の表に示します。

COBOL 開発システム 使用する FCD
Visual COBOL FCD3
Mainframe Express FCD2
32 ビット Visual COBOL FCD3
64 ビット Visual COBOL FCD3
Visual COBOL 内でのマネージ COBOL サポート FCD3
32 ビット Server Express FCD2 または FCD3
64 ビット Server Express FCD3

FCD2 フォーマットと FCD3 フォーマットは、どちらも 32 ビット コンパイルで使用できます。プログラムをコンパイラ指令 NOFCD3 でコンパイルすると、コピーブック XFHFCD.CPY で、FCD3 レコードが定義されます。プログラムを NOFCD3 指令でコンパイルしない場合には、XFHFCD.CPY で FCD2 レコードが定義されます。FCD3 レコードは xfhfcd3.cpy ファイルで直接、無条件に定義され、FCD2 レコードは xfhfcd2.cpy ファイルで直接、無条件に定義されます。

ファイル ハンドラーを使用するには、プログラムで FCD をセットアップし、該当するフィールド (オペレーション コードによってフィールドが異なります) への入力およびファイル ハンドラーの呼び出しを行います。FCD で未使用の領域や予約済みの領域は、バイナリのゼロに設定する必要があります。FCD の該当フィールドに入力を行うと、ファイル ハンドラーがプログラムに情報を返します。

注:使用しているシステムにかかわらず、使用している FCD に応じた値 (FCD2 の場合は 0、FCD3 の場合は 1) に fcd-version フィールドを設定する必要があります。そうしない場合、一部の操作コードが適切に動作しません。

ファイルオープン呼び出しに使用した FCD はその後、このファイルに対してアクセスするときに必ず使用する必要があります。1 つのファイルに対して複数のオープン操作を実行できますが、オープン操作ごとに別の FCD を使用する必要があります。

FCD には、レコード領域、ファイル名領域、キー定義ブロックへのポインター (USAGE POINTER データ項目) を記述します。