bsrtopen関数は、PowerSORTの共有ライブラリを仮想記憶域にロードし、各関数のアドレスをパラメタfuncに設定します。
さらにPowerSORTの実行環境を準備します。
記述形式
#include <bsort/bsrt.h> int bsrtopen (long int BSRTVL, BSPTR_BSRTFUNC func, BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec, BSPTR_BSRTKEY key, BSPTR_BSRTFILE file, BSPTR_BSRTOPT opt);
機能説明
以下にbsrtopen関数の機能を示します。
PowerSORTの実行環境を構築します。
入力にファイル(標準入力を含む)、出力にユーザアプリケーションを使用する場合、ソート機能のときはソート処理を行い、結果を出力する直前に復帰します。マージ機能のときはそれぞれのファイルから少しずつレコードを入力し、マージ処理をする直前に復帰します。
入出力ともファイル(標準入力、標準出力を含む)を指定した場合は、ソート処理、マージ処理、またはコピー処理を実施して復帰します。
パラメタ詳細
以下では、bsrtopen関数のパラメタについて説明します。
BSRTVL
PowerSORTのバージョンレベル(BSRTVL)を指定します。
BSRTVLはBSORT関数のヘッダーファイル(bsrt.h)で定義されています。このパラメタにより、BSORT関数のインターフェースに変更があってもユーザアプリケーションを変更することなく動作させることができます。
func
BSORT関数(bsrtput関数、bsrtget関数、およびbsrtmrge関数)の各アドレスが設定されます。
参考
BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。
prim
ソート機能、マージ機能、コピー機能、レコード選択機能、レコード再編成機能、先入力先出力(FIFO)機能、レコード集約機能、およびサプレス機能などを指定するパラメタです。
参考
BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを意味します。
rec
bsrtopen関数で指定する情報はありません。
エラーがあった場合、その詳細コードが設定されます。
参考
BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。
key
ソート機能、またはマージ機能で使用するキーフィールドを指定します。
参考
BSPTR_BSRTKEYは、BSRTKEY構造体のポインタを意味します。
file
入力ファイル、出力ファイル、および一時ファイルなどファイル情報を指定するパラメタです。
参考
BSPTR_BSRTFILEは、BSRTFILE構造体のポインタを意味します。
opt
オプション機能を指定するパラメタです。
集約フィールド、選択フィールド、再編成フィールド、および読み飛ばしレコード件数を指定する各構造体のポインタを指定します。これら構造体のポインタをいずれも指定しない場合は、bsrtopen関数のoptパラメタにNULLを指定します。いずれかを指定する場合は、それぞれ領域を確保した上で指定します。
参考
BSPTR_BSRTOPTは、BSRTOPT構造体のポインタを意味します。
復帰値
bsrtopen関数の復帰値を説明します。
復帰値 | 意味 |
---|---|
0 | 正常にbsrtopen関数が終了したことを示します。 |
-1 | bsrtopen関数で異常が発生したことを示します。 |
-2 | bsrtopen関数で異常が発生したことを示します。 |
注意
BSRTVLを除いた他のパラメタは、値を設定しない場合でもbsrtopen関数発行前に0クリアする必要があります。値を設定するパラメタは、設定前にフィールドを0クリアします。
bsrtopen関数のパラメタのうち、BSRTVL、func、prim、およびrecは省略できません。key、file、およびoptは省略できます。省略する場合は、bsrtopen関数のパラメタにNULLを指定します。
例) key、file、およびoptを省略する場合の指定方法
bsrtopen(BSRTVL, func, prim, rec, (BSPTR_BSRTKEY)NULL, (BSPTR_BSRTFILE)NULL, (BSPTR_BSRTOPT)NULL);