ファイル制御記述 (FCD)

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

COBOL 開発システム 使用する FCD
Visual COBOL FCD3
Mainframe Express FCD2
32 ビット Enterprise Developer FCD3
64 ビット Enterprise Developer FCD3
Enterprise Developer 内の .NET 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-version フィールドを、使用中の FCD に応じた値 (FCD2 の場合は 0、FCD3 の場合は 1) に設定する必要があります。正しく設定されていない場合、一部の操作コードが適切に動作しません。

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

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