<recio.h > インクルード・ファイルは、すべての ILE C レコード入出力 (I/O) 操作の型、マクロ、およびプロトタイプ関数を定義します。
次の関数は <recio.h > で定義されます。
_Racquire
_Rclose
_Rcommit
_Rdelete
_Rdevatr
_Rfeod
_Rfeov
_Rformat
_Rindara
_Riofbk
_Rlocate
_Ropen
_Ropnfbk
_Rpgmdev
_Rreadd
_Rreadf
_Rreadindv
_Rreadk
_Rreadl
_Rreadn
_Rreadnc
_Rreadp
_Rreads
_Rrelease
_Rrlslck
_Rrollbck
_Rupdate
_Rupfb
_Rwrite
_Rwrited
_Rwriterd
_Rwrread
次の位置決めマクロは、recio.h で定義されます。
__END
__END_FRC
__FIRST
__KEY_EQ
__KEY_GE
__KEY_GT
__KEY_LE
__KEY_LT
__KEY_NEXTEQ
__KEY_NEXTUNQ
__KEY_PREVEQ
__KEY_PREVUNQ
__KEY_LAST
__KEY_NEXT
__NO_POSITION
__PREVIOUS
__PRIOR
__RRN_EQ
__START
__START_FRC
__LAST
__NEXT
次のマクロは、recio.h で定義されます。
__DATA_ONLY
__DFT
__NO_LOCK
__NULL_KEY_MAP
次の方向マクロは、recio.h で定義されます。
次の関数およびマクロは、位置指定モードまたは移動モードをサポートしています。
_Rreadd
_Rreadf
_Rreadindv
_Rreadk
_Rreadl
_Rreadn
_Rreadnc
_Rreadp
_Rreads
_Rupdate
_Rwrite
_Rwrited
_Rwriterd
_Rwrread
バッファー・パラメーターを含むレコード入出力関数は、移動モードまたは位置指定モードで機能します。
移動モードでは、ユーザー提供のバッファーとシステム・バッファーの間で、データが移動します。
位置指定モードでは、ユーザーはシステム・バッファーでデータにアクセスする必要があります。
システム・バッファーのポインターは、_RFILE 構造体で公開されています。
位置指定モードを使用するように指定するには、レコード入出力関数のバッファー・パラメーターを NULL にコード化します。
関数の数値には、サイズ・パラメーターが含まれています。
移動モードの場合、これはユーザー提供のバッファーとシステム・バッファーの間でコピーされるデータ・バイト数になります。
すべてのレコード入出力関数では、指定されたサイズにかかわらず、一度に 1 レコードを処理します。
このレコードのサイズは、ファイル記述により定義されます。
これは、レコード入出力関数の呼び出しでユーザーが定義するサイズ・パラメーターと等しくならない場合があります。
バッファー間を移動するデータ量は、現行のレコード形式または指定された最小サイズのうち、小さいほうのレコード長と等しくなります。
このサイズ・パラメーターは、位置指定モードでは無視されます。
次の型は recio.h で定義されます。
オープンされたレコード入出力操作を制御するための情報
typedef _Packed struct {
char reserved1[16];
volatile void *const *const in_buf;
volatile void *const *const out_buf;
char reserved2[48];
_RIOFB_T riofb;
char reserved3[32];
const unsigned int buf_length;
char reserved4[28];
volatile char *const in_null_map;
volatile char *const out_null_map;
volatile char *const null_key_map;
char reserved5[48];
const int min_length;
short null_map_len;
short null_key_map_len;
char reserved6[8];
}_RFILE;
エレメント
説明
in_null_map
データベース・ファイルからの読み取り時に、どちらのフィールドを NULL と見なすかを指定します。
out_null_map
データベース・ファイルへの書き込み時に、どちらのフィールドを NULL と見なすかを指定します。
null_key_map
データベースをキーで読み取っている場合に、どちらのフィールドに NULL を組み込むかを指定します。
null_map_len
in_null_map および out_null_map の長さを指定します。
null_key_map_len
null_key_map の長さを指定します。
レコード入出力のフィードバック情報
typedef struct {
unsigned char *key;
_Sys_Struct_T *sysparm;
unsigned long rrn;
long num_bytes;
short blk_count;
char blk_filled_by;
int dup_key :1;
int icf_locate :1;
int reserved1 :6;
char reserved2[20];
}_RIOFB_T;
エレメント
説明
key
キー・シーケンス・アクセス・パスを使用してファイルを処理している場合、配置、読み取り、および書き込みが正常に行われたレコードのキー値のポインターが、このフィールドに入ります。
sysparm
このフィールドは、ICF ファイル、ディスプレイ・ファイル、およびプリンター・ファイルのメジャー戻りコードおよびマイナー戻りコードのポインターです。
rrn
このフィールドには、配置、読み取り、書き込みが正常に行われたレコードの相対レコード番号が入ります。
num_bytes
このフィールドには、読み取りまたは書き込みされたバイト数が入ります。
blk_count
このフィールドには、ブロック内に残っているレコード数が入ります。
ファイルが入力用にオープンされている場合、blkrcd=y が指定され、読み取り関数が呼び出されて、ブロック内に残っているレコード数によって、このフィールドが更新されます。
blk_filled_by
このフィールドは、ブロックを埋める処理を表します。
ファイルが入力用にオープンされている場合、blkrcd=y が指定され、読み取り関数が呼び出されます。
_Rreadn 関数がブロックを埋めた場合、このフィールドには __READ_NEXT マクロが設定されます。_Rreadp 関数がブロックを埋めた場合には、__READ_PREV マクロが設定されます。
システム固有の情報
typedef struct {
void *sysparm_ext;
_Maj_Min_rc_T _Maj_Min;
char reserved1[12];
} _Sys_Struct_T;
メジャー戻りコードおよびマイナー戻りコード
typedef struct {
char major_rc[2];
char minor_rc[2];
} _Maj_Min_rc_T;
次のマクロは、recio.h で定義されます。
_FILENAME_MAX
最も長いファイル名を保持するのに十分大きな文字配列のサイズを意味する、整数定数式に展開されます。
これは、ストリーム入出力マクロと同じです。
_ROPEN_MAX
同時にオープン可能な最大ファイル数を意味する、整数定数式に展開されます。
次の NULL フィールド・マクロは、recio.h で定義されます。
エレメント
説明
_CLEAR_NULL_MAP(file, type)
NULL 出力フィールド・マップをクリアして、file に書き込まれる NULL フィールドがレコード内に存在しないことを示す。
type は、現行レコード・フォーマットの NULL フィールド・マップに対応する typedef を指します。
_CLEAR_UPDATE_NULL_MAP(file, type)
NULL 入力フィールド・マップをクリアして、file に書き込まれるレコード内に NULL フィールドが存在しないことを示す。
type は、現行レコード・フォーマットの NULL フィールド・マップに対応する typedef を指します。
_QRY_NULL_MAP(file, type)
前に読み取られたレコードで NULL であったフィールドの数を戻します。type は、現行レコード・フォーマットの NULL フィールド・マップに対応する typedef を指します。
_CLEAR_NULL_KEY_MAP(file, type)
NULL キー・フィールド・マップをクリアして、file に書き込まれるレコード内に NULL キー・フィールドが存在しないことを示します。
type は、現行レコード・フォーマットの NULL キー・フィールド・マップに対応する typedef を指します。
_SET_NULL_MAP_FIELD(file, type, field)
出力 NULL フィールド・マップ内の指定した field を設定して、レコードが file に書き込まれる際に field が NULL とみなされるようにします。
_SET_UPDATE_NULL_MAP_FIELD(file, type, field)
入力 NULL フィールド・マップ内の指定した field を設定して、レコードが file に書き込まれる際に field が NULL とみなされるようにします。
type は、レコード・フォーマットの NULL キー・フィールド・マップに対応する typedef を指します。
_QRY_NULL_MAP_FIELD(file, type, field)
前の読み取りレコードで field が NULL と見なされるように、NULL 入力フィールド・マップ内の指定された field が設定されている場合は、 1 を戻します。
フィールドが NULL でない場合は、ゼロを戻します。
type は、現行レコード・フォーマットの NULL キー・フィールド・マップに対応する typedef を指します。
_SET_NULL_KEY_MAP_FIELD(file, type, field)
指定されたフィールド・マップを指定して、レコードが file から読み取られる際に field が NULL と見なされるようにします。
type は、現行レコード・フォーマットの NULL キー・フィールド・マップに対応する typedef を指します。
_QRY_NULL_KEY_MAP(file, type)
前に読み取られたレコードのキーで NULL だったフィールドの数を戻します。
type は、現行レコード・フォーマットの NULL フィールド・マップに対応する typedef を指します。
_QRY_NULL_KEY_MAP_FIELD(file, type, field)
前の読み取りレコードにおいて field は NULL と見なされることを、NULL キー・フィールド・マップで指定されたフィールドが示す場合に、1 を戻します。
field が NULL でない場合、ゼロを戻します。
type は、現行レコード・フォーマットの NULL キー・フィールド・マップに対応する typedef を指します。
[ ページのトップ | 前ページ | 次ページ | 目次 |
索引 ]