Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


dc_dam_create

〈このページの構成〉

名称

物理ファイルの割り当て

形式

ANSI C ,C++の形式

#include <dcdami.h>
int  dc_dam_create(char *fname,int blksize,int blknum,int pnum,
                   DCLONG flags)

K&R版 C の形式

#include <dcdami.h>
int  dc_dam_create(fname,blksize,blknum,pnum,flags)
char     *fname;
int      blksize;
int      blknum;
int      pnum;
DCLONG   flags;

機能

OpenTP1ファイルシステムに物理ファイルを割り当てます。

物理ファイルの大きさは,(ブロック長+8)×(ブロック数+1)になります。

dc_dam_create関数を呼び出したあとには,dc_dam_iopen関数を呼び出す必要はありません。

dc_dam_create関数を呼び出したあとには,次に示す関数は呼び出せません。

出力バッファの大きさは(ブロック長+8)×一括処理ブロック数になります。

UAPで値を設定する引数

●fname

OpenTP1ファイルシステムに作成する物理ファイル名を,(スペシャルファイル名+14)バイト以内のパス名で設定します。

●blksize

物理ファイルのブロック長を設定します。

32760を超えないセクタ長×n−8(nは正の整数)を満たす値を設定してください。

セクタ長は次のとおりです。

  • キャラクタ型スペシャルファイルの場合:filmkfsコマンドの-sオプション指定値

  • 通常ファイルの場合:512バイト

●blknum

物理ファイルのブロック数を設定します。

設定できる範囲は1〜2147483647です。

●pnum

入出力の単位となる,一括処理ブロック数を設定します。

設定できる範囲は0〜2147483647です。0を指定した場合は,10になります。

●flags

所有者,所有者グループ,ほかのUAPのアクセス権を設定します。次に示す値,または( )内に示すビット列で設定します。

DCDAM_READ_OWNER(00400)…所有者の読み出し権を設定

DCDAM_WRITE_OWNER(00200)…所有者の書き込み権を設定

DCDAM_READ_GROUP(00040) …グループの読み出し権を設定

DCDAM_WRITE_GROUP(00020) …グループの書き込み権を設定

DCDAM_READ_OTHERS(00004) …ほかのUAPの読み出し権を設定

DCDAM_WRITE_OTHERS(00002)…ほかのUAPの書き込み権を設定

なお,DCNOFLAGSを設定した場合は,次のように仮定されます。

DCDAM_READ_OWNER(00400)

DCDAM_WRITE_OWNER(00200)

DCDAM_READ_GROUP(00040)

DCDAM_READ_OTHERS(00004)

リターン値

リターン値

リターン値(数値)

意味

0または正の整数

0または正の整数は,ファイル記述子を示します。

DCDAMER_NOMEM

-1607

メモリが不足しました。

DCDAMER_OPENED

-1608

設定した物理ファイルはオープン済みです。

DCDAMER_PARAM_FLAGS

-1611

flagsに設定した値が間違っています。

DCDAMER_FILEER

-1614

物理ファイル名が間違っています。

DCDAMER_PNUMER

-1615

一括処理ブロック数の値が間違っています。

DCDAMER_EXIST

-1617

すでに同じ名称の物理ファイルが割り当てられています。

DCDAMER_VERSION

-1618

OpenTP1ファイルシステムのバージョンが,作成時と割り当て時で一致していません。

DCDAMER_IOER

-1620

入出力エラーが起こりました。

DCDAMER_ACCESS

-1628

dc_dam_create関数を呼び出したUAPは,スペシャルファイルへのアクセス権がありません。

割り当てようとしたDAMファイルは,セキュリティ機能で保護されています。dc_dam_create関数を呼び出したUAPには,アクセス権限がありません。

DCDAMER_LBLNER

-1630

ブロック長が適当な値ではありません。

DCDAMER_LBNOER

-1631

ブロック数が適当な値ではありません。

DCDAMER_LFNMER

-1632

物理ファイル名がキャラクタ型スペシャルファイルではありません。またはこのスペシャルファイルに対応する装置がありません。

DCDAMER_LNOINT

-1633

指定したOpenTP1ファイルが,OpenTP1ファイルシステムとして初期化されていません。

DCDAMER_LFFOVF

-1634

OpenTP1ファイルシステムとして初期化したときに指定したファイル数以上のOpenTP1ファイル(物理ファイル)を割り当てようとしています。

DCDAMER_LFNOVF

-1635

実行しているプロセスでオープンできるファイル数の最大値を超えた値を設定しています。

DCDAMER_USED

-1636

fnameに設定した物理ファイルは,現在オンラインで使っています。またはほかのプロセスで使っています。

DCDAMER_SPACE

-1640

OpenTP1ファイルシステムに物理ファイルを割り当てる分の空き領域がありません。

DCDAMER_NO_ACL

-1646

割り当てようとしたDAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。