ヘッダー記述の作成
各フォーマットのヘッダー記述には、以下の情報が含まれています。
例えば、以下のディレクティブを使用して下のヘッダーが作成されます。
- 外部ファイルのファイル名またはライブラリー名
- ファイル・タイプ (物理、論理、装置)
- ファイルの作成日
- レコード様式名
- レコード様式レベル ID (レベル検査情報)
例えば、以下のディレクティブを使用して下のヘッダーが作成されます。#pragma mapinc("payroll","example/test(fmt1)","input","")
#include "payroll"
図 1. ヘッダー記述
/* ------------------------------------------------------------------ */
/* PHYSICAL FILE: EXAMPLE/TEST */
/* FILE CREATION DATE: 93/09/01 */
/* RECORD FORMAT: FMT1 */
/* FORMAT LEVEL IDENTIFIER: 371E00A681EA7 */
/* ------------------------------------------------------------------ */
以下に、型構造体の型定義の例を示します。
typedef struct {
.
.
.
} LIBRARY_FILE_FORMAT_tag_t;
#pragma mapinc ディレクティブのパラメーターを使用して、作成された型の名前が作成されます。LIBRARY、FILE、および FORMAT は、#pragma mapinc ディレクティブで指定されたライブラリー名、ファイル名、および様式名です。
これらの名前は、引用符付き名前が使用されている場合を除き、大文字変換されます。
ライブラリー名およびファイル名は、#pragma mapinc ディレクティブで指定された独自の接頭部名で置き換えることができます。
ライブラリー名およびファイル名に表示される文字で C 言語により有効と認識されないものはすべて、下線 (_) 文字に変換されます。注: 特殊文字 #、@、または $ はライブラリー名およびファイル名では使用しないでください。これらの文字がライブラリー名およびファイル名で使用されると、それらも下線 (_) 文字に変換されます。
構造体名のタグは、構造体定義に含まれるフィールドのタイプを示しています。タグに使用できる値は次のとおりです。
| フィールド・タイプ | タグ |
|---|---|
| 入力 | i |
| 出力 | o |
| 両方 | both |
| キー | key |
| 標識 | indic |
| nullflds | nmap/nkmap |
他のリストされたフィールド・タイプに使用される命名規則とは異なり、フィールド・タイプ lvlchk が指定されると、作成された構造体の型の配列の名前は _LVLCHK_T となります。
複数のフォーマットに対して外部ファイル記述を組み込む場合は、複数のフォーマット名 (format1 format2) または (*ALL) を #pragma mapinc ディレクティブで指定します。
ヘッダー記述および型定義は、各フォーマットに対して作成されます。
lname オプションが指定されていて、#pragma mapinc ディレクティブ内のファイル名の長さが 10 文字を超える場合、コンパイラーが生成する型定義ではシステム生成の 10 文字の名前が使用されます。