ファイル制御記述 (FCD) とは、使用中のファイルに関する情報を記述したデータ領域のことです。FCD には 2 つのバージョンがあり、どちらを使用するかは COBOL 開発システムを 32 ビットと 64 ビットのどちらのオペレーティング システムで実行するかによって決まります。これを次の表に示します。
FCD2 フォーマットと FCD3 フォーマットは、どちらも 32 ビット コンパイルで使用できます。プログラムをコンパイラ指令 NOFCD3 でコンパイルすると、コピーブック XFHFCD.CPY で、FCD3 レコードが定義されます。プログラムを NOFCD3 指令でコンパイルしない場合には、XFHFCD.CPY で FCD2 レコードが定義されます。FCD3 レコードは xfhfcd3.cpy ファイルで直接、無条件に定義され、FCD2 レコードは xfhfcd2.cpy ファイルで直接、無条件に定義されます。
ファイル ハンドラーを使用するには、プログラムで FCD をセットアップし、該当するフィールド (オペレーション コードによってフィールドが異なります) への入力およびファイル ハンドラーの呼び出しを行います。FCD で未使用の領域や予約済みの領域は、バイナリのゼロに設定する必要があります。FCD の該当フィールドに入力を行うと、ファイル ハンドラーがプログラムに情報を返します。
ファイルオープン呼び出しに使用した FCD はその後、このファイルに対してアクセスするときに必ず使用する必要があります。1 つのファイルに対して複数のオープン操作を実行できますが、オープン操作ごとに別の FCD を使用する必要があります。
FCD には、レコード領域、ファイル名領域、キー定義ブロックへのポインター (USAGE POINTER データ項目) を記述します。