OSDN Git Service

(split) LDP: draft snapshot generated from latest ja.po files.
[linuxjm/LDP_man-pages.git] / draft / man3 / recno.3
1 .\" Copyright (c) 1990, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by the University of
15 .\"     California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\"     @(#)recno.3     8.5 (Berkeley) 8/18/94
33 .\"
34 .\"*******************************************************************
35 .\"
36 .\" This file was generated with po4a. Translate the source file.
37 .\"
38 .\"*******************************************************************
39 .TH RECNO 3 1994\-08\-18 "" "Linux Programmer's Manual"
40 .UC 7
41 .SH 名前
42 recno \- レコード番号データベースへのアクセスメソッド
43 .SH 書式
44 .nf
45 \fB#include <sys/types.h>
46 #include <db.h>\fP
47 .fi
48 .SH 説明
49 ルーチン \fBdbopen\fP(3)  はデータベースファイルに対するライブラリインターフェースである。 サポートされているファイルフォーマットの一つに、
50 レコード番号ファイル (record number file: recno file) がある。 データベースへのアクセスメソッドに関する一般的な記述は
51 \fBdbopen\fP(3), に書かれている。 このマニュアルページでは recno 特有の情報についてのみ記述する。
52 .PP
53 レコード番号データ構造は、フラットなファイル形式に格納された 可変長/固定長レコードからなり、論理レコード番号でアクセスされる。 レコード番号 5
54 があれば、レコード番号 1 から 4 も存在する。 レコード番号 1 を削除すると、レコード番号 5 は 4 に付け替えられ、
55 カーソルも移動する。レコード番号 1 以降のものは一つ繰り上がるわけである。
56 .PP
57 \fBdbopen\fP(3)  で使う recno アクセスメソッドに特有のデータ構造体は、 \fI<db.h>\fP
58 インクルードファイルで次のように定義されている。
59 .PP
60 .in +4n
61 .nf
62 typedef struct {
63     unsigned long flags;
64     unsigned int  cachesize;
65     unsigned int  psize;
66     int           lorder;
67     size_t        reclen;
68     unsigned char bval;
69     char         *bfname;
70 } RECNOINFO;
71 .fi
72 .in
73 .PP
74 この構造体の要素を以下に示す。
75 .TP 
76 flags
77 \fIflags\fP の値は以下の値の論理和で指定される。
78 .RS
79 .TP 
80 \fBR_FIXEDLEN\fP
81 レコード長が固定であり、バイト区切りではない。 構造体の要素 \fIreclen\fP はレコードの長さを指定する。また、要素 \fIbval\fP は埋め文字
82 (pad character) を指定する。 データベースに入れられたレコードの内 \fIreclen\fP
83 バイトに満たないものでは、残りの部分に埋め文字が自動的に入る。
84 .TP 
85 \fBR_NOKEY\fP
86 \fBdbopen\fP(3)  で指定されたインターフェイスでは、シーケンシャルなレコード取得は 呼び出しキーとデータ構造体の両方を埋めていく。
87 \fBR_NOKEY\fP フラグが指定されていると、キー構造体を埋めるのに \fIcursor\fP ルーチンを必要としない。
88 これを用いれば、アプリケーションがファイルの終りの方を取得する際に、 その途中のレコードを読まなくても済む事になる。
89 .TP 
90 \fBR_SNAPSHOT\fP
91 このフラグを指定すると、 \fBdbopen\fP(3)  の呼び出しの際、 オリジナルファイルから変更されていないレコードを読む代わりに、 ファイルの
92 snapshot を用いる。
93 .RE
94 .TP 
95 \fIcachesize\fP
96 想定されるメモリキャッシュの最大サイズ (バイト単位)。 この値は \fBあくまで\fP 参考であり、アクセスメソッドはこの値を越えたメモリの
97 割り当てに成功することもある。 \fIcachesize\fP が 0 (あるいは指定されていない) の場合、デフォルトのキャッシュが使われる。
98 .TP 
99 \fIpsize\fP
100 recno アクセスメソッドは、自身のレコードのコピーをメモリ内部に btree で保存している。 この値は、その btree
101 中のノードに対して用いられる ページサイズ (バイト単位) である。 \fIpsize\fP が 0 (あるいは指定されていない) の場合、
102 ファイルシステムの I/O ブロックサイズを基にして ページサイズが決められる。 詳細は \fBbtree\fP(3)  を参照。
103 .TP 
104 \fIlorder\fP
105 データベースに格納されているメタデータの整数値のバイトオーダー。 この数字は、順序を整数で表したものである。 例えばビッグエンディアンなら、この数値は
106 4,321 となる。 \fIlorder\fP が 0 (指定されていない) の場合、現在のホスト で使われているバイトオーダーが使われる。
107 .TP 
108 \fIreclen\fP
109 固定レコード長の長さ。
110 .TP 
111 \fIbval\fP
112 可変レコード長において、 レコードの終りを示す区切りバイト (区切り文字) である。 固定レコード長では埋め文字として使われる。
113 値が指定されていないと、 可変レコード長のレコードの終りには改行 ("\en") が使われる。 固定レコード長のレコードは空白 (space)
114 で埋められる。
115 .TP 
116 \fIbfname\fP
117 recno アクセスメソッドは、 自身のレコードのコピーをメモリ内部で btree に保存している。 \fIbfname\fP が NULL
118 でない場合、これは btree ファイル名 (btree ファイルを \fBdbopen\fP(3)  する時に指定するファイル名) を指定する。
119 .PP
120 \fIrecno\fP アクセスメソッドで使われるキー/データ対のデータ部分は、 他のアクセスメソッドと同じである。 しかしキーは異なっている。 キーの
121 \fIdata\fP フィールドは \fIrecno_t\fP 型の、メモリ位置へのポインタでなければならない。 \fIrecno_t\fP は
122 \fI<db.h>\fP インクルードファイルで定義されている。 この型は通常、その実装で利用可能な最大の符号無し整数である。 キーの
123 \fIsize\fP フィールドはその型のサイズとなる。
124 .PP
125 recno アクセスメソッドのファイルに関連づけられる メタデータは存在できないから、 デフォルト値 (固定レコード長やセパレータ文字など)
126 に対する変更はファイルを開く毎に明示的に指定しなければならない。
127 .PP
128 \fBdbopen\fP(3)  で指定されたインターフェイスでは、 \fIput\fP インターフェイスを使って新しいレコードを作成するときに、
129 指定したレコード番号がデータベース中に存在している最大レコード番号より 一つ以上大きいと、 空のレコードが同時にできてしまう。
130 .SH エラー
131 \fIrecno\fP アクセスメソッドルーチンは失敗すると \fBdbopen\fP(3)  で指定されているエラーに応じた \fIerrno\fP か、
132 あるいは以下に示す \fIerrno\fP をセットする。
133 .TP 
134 \fBEINVAL\fP
135 固定長データベースにレコードを追加するとき、データが長すぎた。
136 .SH バグ
137 バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが サポートされている。
138 .SH 関連項目
139 \fBbtree\fP(3), \fBdbopen\fP(3), \fBhash\fP(3), \fBmpool\fP(3)
140 .sp
141 \fIDocument Processing in a Relational Database System\fP, Michael Stonebraker,
142 Heidi Stettner, Joseph Kalash, Antonin Guttman, Nadene Lynn, Memorandum
143 No. UCB/ERL M82/32, May 1982.