<recio.h>

<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 で定義されます。

__READ_NEXT __READ_PREV

次の関数およびマクロは、位置指定モードまたは移動モードをサポートしています。

_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 を指します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]