OSDN Git Service

(split) Fixed #25191 (typo in fenv.3).
[linuxjm/LDP_man-pages.git] / release / man3 / dbopen.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 .\"     @(#)dbopen.3    8.5 (Berkeley) 1/2/94
33 .\"
34 .\" Japanese Version Copyright (c) 1999 Shouichi Saito
35 .\"     all rights reserved.
36 .\" Translated Thu Jul 22 00:00:00 JST 1999
37 .\"     by Shouichi Saito <ss236rx@ymg.urban.ne.jp>
38 .\" Proofed Tue Aug 19 1999 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
39 .\"
40 .\"WORD:        descriptor      ¥Ç¥¹¥¯¥ê¥×¥¿
41 .TH DBOPEN 3 1994-01-02 "" "Linux Programmer's Manual"
42 .UC 7
43 .SH Ì¾Á°
44 dbopen \- ¥Ç¡¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¥á¥½¥Ã¥É
45 .SH ½ñ¼°
46 .nf
47 .B #include <sys/types.h>
48 .B #include <limits.h>
49 .B #include <db.h>
50
51 .BI "DB *dbopen(const char *" file ", int " flags ", int " mode \
52 ", DBTYPE " type ,
53 .BI "           const void *" openinfo );
54 .fi
55 .SH ÀâÌÀ
56 .BR dbopen ()
57 ¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£
58 ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï btree, hash,
59 UNIX ¥Õ¥¡¥¤¥ë¤Ë»Ø¸þ¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È, ¤Î 3 ¤Ä¤Ç¤¢¤ë¡£
60 btree ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥½¡¼¥È¤µ¤ì¤¿¥Ð¥é¥ó¥¹¥Ä¥ê¡¼¹½Â¤¤Ç¤¢¤ë¡£
61 hashed ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢³ÈÄ¥²Äǽ¤ÊưŪ hash ¥¹¥­¡¼¥à¤Ç¤¢¤ë¡£
62 ¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë (flat-file) ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢
63 ¸ÇÄêĹ/²ÄÊÑĹ¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£
64 ¤½¤ì¤¾¤ì¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤È¡¢¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÆÃÍ­¤Î¾ðÊó¤Ï
65 ¤½¤ì¤¾¤ìÂбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸
66 .BR btree (3),
67 .BR hash (3),
68 .BR recno (3)
69 ¤Ë¾ÜºÙ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
70 .PP
71 .BR dbopen ()
72 ¤Ï
73 .I file
74 ¤òÆɤ߹þ¤ß (Æɤ߽ñ¤­) ¤¹¤ë¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¡£
75 .I file
76 °ú¤­¿ô¤ò NULL ¤Ë¤¹¤ì¤Ð¡¢
77 ¥Ç¥£¥¹¥¯¾å¤ËÊݸ¤·¤¿¤¯¤Ê¤¤¥Õ¥¡¥¤¥ë¤òºî¤ë¤³¤È¤â¤Ç¤­¤ë¡£
78 .PP
79 .I flags
80 ¤È
81 .I mode
82 °ú¤­¿ô¤Ï
83 .BR open (2)
84 ¥ë¡¼¥Á¥ó¤Ç»ØÄꤹ¤ë¤Î¤ÈƱÍͤǤ¢¤ë¡£¤¿¤À¤·
85 °ÕÌ£¤ò»ý¤Ä¥Õ¥é¥°¤Ï
86 .BR O_CREAT ,
87 .BR O_EXCL ,
88 .BR O_EXLOCK ,
89 .BR O_NONBLOCK ,
90 .BR O_RDONLY ,
91 .BR O_RDWR ,
92 .BR O_SHLOCK ,
93 .B O_TRUNC
94 ¤À¤±¤Ç¤¢¤ë¡£
95 (Ãí°Õ:
96 .B O_WRONLY
97 ¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò³«¤¯»ö¤Ï½ÐÍè¤Ê¤¤)
98 .\"Three additional options may be specified by
99 .\".IR or 'ing
100 .\"them into the
101 .\".I flags
102 .\"argument.
103 .\".TP
104 .\"DB_LOCK
105 .\"Do the necessary locking in the database to support concurrent access.
106 .\"If concurrent access isn't needed or the database is read-only this
107 .\"flag should not be set, as it tends to have an associated performance
108 .\"penalty.
109 .\".TP
110 .\"DB_SHMEM
111 .\"Place the underlying memory pool used by the database in shared
112 .\"memory.
113 .\"Necessary for concurrent access.
114 .\".TP
115 .\"DB_TXN
116 .\"Support transactions in the database.
117 .\"The DB_LOCK and DB_SHMEM flags must be set as well.
118 .PP
119 .I type
120 °ú¤­¿ô¤Ï
121 .I DBTYPE
122 ·¿¤Ç¤¢¤ë (¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
123 .I <db.h>
124 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£
125 .BR DB_BTREE ,
126 .BR DB_HASH ,
127 .B DB_RECNO
128 ¤Î¤¤¤º¤ì¤«¤ò¥»¥Ã¥È¤Ç¤­¤ë¡£
129 .PP
130 .I openinfo
131 °ú¤­¿ô¤Ï¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë¸ÇÍ­¤Ê¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
132 ¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤ˴ؤ·¤Æ¤Ï³Æ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Î
133 ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
134 .I openinfo
135 ¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤ì¤¾¤ì¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤È¥·¥¹¥Æ¥à¤È¤ËŬ¹ç¤·¤¿
136 ¥Ç¥Õ¥©¥ë¥È¤¬ÍѤ¤¤é¤ì¤ë¡£
137 .PP
138 .BR dbopen ()
139 ¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç
140 .I DB
141 ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¡¢¥¨¥é¡¼¤Î¾ì¹ç NULL ¤òÊÖ¤¹¡£
142 .I DB
143 ¹½Â¤ÂΤÏ
144 .I <db.h>
145 ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢
146 ¾¯¤Ê¤¯¤È¤â°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤¤¤ë¡£
147 .sp
148 .in +4n
149 .nf
150 typedef struct {
151     DBTYPE type;
152     int (*close)(const DB *db);
153     int (*del)(const DB *db, const DBT *key, unsigned int flags);
154     int (*fd)(const DB *db);
155     int (*get)(const DB *db, DBT *key, DBT *data,
156                unsigned int flags);
157     int (*put)(const DB *db, DBT *key, const DBT *data,
158                unsigned int flags);
159     int (*sync)(const DB *db, unsigned int flags);
160     int (*seq)(const DB *db, DBT *key, DBT *data,
161                unsigned int flags);
162 } DB;
163 .fi
164 .in
165 .PP
166 ³ÆÍ×ÁǤˤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¿¥¤¥×¤È¡¢
167 ÍÍ¡¹¤ÊÆ°ºî¤ò¤¹¤ë´Ø¿ô¤Î¥»¥Ã¥È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
168 ¤³¤ì¤é¤Î´Ø¿ô¤Ï
169 .BR dbopen ()
170 ¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ë¡£
171 ¥­¡¼/¥Ç¡¼¥¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ä¥Õ¥é¥°Ãͤò¼è¤ë¤â¤Î¤â¤¢¤ë¡£
172 .TP
173 .I type
174 ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥¢¥¯¥»¥¹¥á¥½¥Ã¥É (¤È¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È) ¤Î·¿¡£
175 .TP
176 .I close
177 ¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ­¤À¤¹¤¿¤á¤Î¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
178 ³ä¤êÅö¤Æ¤é¤ì¤¿¥ê¥½¡¼¥¹¤ò²òÊü¤·¡¢ÍøÍѤ·¤¿¥Õ¥¡¥¤¥ë(·²)¤ò¥¯¥í¡¼¥º¤¹¤ë¡£
179 ¥­¡¼/¥Ç¡¼¥¿ÂФ¬¥á¥â¥ê¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
180 .I close
181 ¤ä
182 .I sync
183 ´Ø¿ô¤Ç¤ÎƱ´ü¤Ë¼ºÇÔ¤¹¤ë¤È¡¢¾ðÊó¤ËÌ·½â¤¬À¸¤¸¤ë¤«¾ðÊó¤ò¼º¤¦²ÄǽÀ­¤¬¤¢¤ë¡£
184 .I close
185 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
186 .RI ( errno
187 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
188 .TP
189 .I del
190 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥­¡¼/¥Ç¡¼¥¿ÂФòºï½ü¤¹¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
191 .IP
192 .I flag
193 °ú¤­¿ô¤Ï¼¡¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤­¤ë¡£
194 .RS
195 .TP
196 .B R_CURSOR
197 ¥«¡¼¥½¥ë (cursor) ¤¬»²¾È¤·¤Æ¤¤¤ë¥ì¥³¡¼¥É¤òºï½ü¤¹¤ë¡£
198 ¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
199 .RE
200 .IP
201 .I delete
202 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
203 .RI ( errno
204 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿»ØÄê¤Î
205 .I key
206 ¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£
207 .TP
208 .I fd
209 ÍѤ¤¤Æ¤¤¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¥ë¡¼¥Á¥ó
210 ¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
211 Ʊ¤¸¥Õ¥¡¥¤¥ë̾
212 .I file
213 ¤Ç
214 .BR dbopen ()
215 ¤ò¸Æ¤Ó½Ð¤·¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢
216 ¤½¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹Ã±°ì¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
217 ¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥í¥Ã¥¯´Ø¿ô
218 .BR fcntl (2)
219 ¤È
220 .BR flock (2)
221 ¤Ø¤Î°ú¤­¿ô¤È¤·¤Æ°ÂÁ´¤Ë»ÈÍѤǤ­¤ë¡£
222 ¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¡¢É¬¤º¤·¤â¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç
223 ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¤¤¤º¤ì¤«¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¯¤Æ¤âÎɤ¤¡£
224 ¥á¥â¥êÆâ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï̵¤¤¡£
225 .I fd
226 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
227 .RI ( errno
228 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
229 .TP
230 .I get
231 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥­¡¼¤òÍѤ¤¤Æ¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î
232 ¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
233 »ØÄꤷ¤¿
234 .I key
235 ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬
236 .I data
237 ¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
238 .I get
239 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
240 .RI ( errno
241 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿
242 .I key
243 ¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£
244 .TP
245 .I put
246 ¥­¡¼/¥Ç¡¼¥¿ÂФò¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËǼ¤á¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
247 .IP
248 .I flag
249 °ú¤­¿ô¤Ë¤Ï¼¡¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤¬¥»¥Ã¥È¤Ç¤­¤ë¡£
250 .RS
251 .TP
252 .B R_CURSOR
253 ¥«¡¼¥½¥ë¤¬»²¾È¤·¤Æ¤¤¤ë¥­¡¼/¥Ç¡¼¥¿ÂФòÃÖ¤­´¹¤¨¤ë¡£
254 ¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£
255 .TP
256 .B R_IAFTER
257 .I key
258 ¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤Îľ¸å¤Ë¡¢
259 ¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÄɲ乤롣
260 Äɲ䵤줿¥­¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï
261 .I key
262 ¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
263 .RB ( DB_RECNO
264 ¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Î¤ß»È¤¨¤ë¡£)
265 .TP
266 .B R_IBEFORE
267 .I key
268 ¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤ÎľÁ°¤Ë¡¢
269 ¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÁÞÆþ¤¹¤ë¡£
270 Äɲ䵤줿¥­¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï
271 .I key
272 ¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
273 .RB ( DB_RECNO
274 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£)
275 .TP
276 .B R_NOOVERWRITE
277 ¥­¡¼¤¬¤¢¤é¤«¤¸¤á¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¸Â¤ê¡¢¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФò¤¤¤ì¤ë¡£
278 .TP
279 .B R_SETCURSOR
280 ¥­¡¼/¥Ç¡¼¥¿ÂФòǼ¤á¡¢¤½¤ì¤ò»Ø¤¹¤è¤¦¤Ë¥«¡¼¥½¥ë°ÌÃÖ¤ò¥»¥Ã¥È¤¢¤ë¤¤¤Ï½é´ü
281 ²½¤¹¤ë¡£
282 .RB ( DB_BTREE
283 ¤È
284 .B DB_RECNO
285 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£)
286 .RE
287 .IP
288 .B R_SETCURSOR
289 ¤Ï
290 .B DB_BTREE
291 ¤È
292 .B DB_RECNO
293 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£
294 ¤Ê¤¼¤Ê¤é
295 .B R_SETCURSOR
296 ¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ­¤Î½ç½ø¤ò¥­¡¼
297 ¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
298 .IP
299 .B R_IAFTER
300 ¤È
301 .B R_IBEFORE
302 ¤Ï
303 .B DB_RECNO
304 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£
305 ¤³¤ì¤é¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤¬
306 ¿·¤·¤¤¥­¡¼¤òºî¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
307 ¤³¤ì¤¬À®Î©¤¹¤ë¤Î¤Ï¡¢Î㤨¤Ð¡¢½ç½ø¤Å¤±¤é¤¿ÆÈΩ¤Ê¥ì¥³¡¼¥ÉÈֹ椬
308 ¥­¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£
309 .IP
310 .I put
311 ¥ë¡¼¥Á¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФò
312 ´û¤Ë¸ºß¤¹¤ë¥­¡¼¤òÃÖ¤­´¹¤¨¤ë»ö¤Æ³ÊǼ¤¹¤ëÆ°ºî¤Ç¤¢¤ë¡£
313 .IP
314 .I put
315 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
316 .RI ( errno
317 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿
318 .I flag
319 ¤Ë
320 .B R_NOOVERWRITE
321 ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥­¡¼¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç 1 ¤òÊÖ¤¹¡£
322 .TP
323 .I seq
324 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î
325 ¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
326 ¥­¡¼¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬
327 .I key
328 ¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬
329 .I data
330 ¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
331 .IP
332 ¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥­¡¼/¥Ç¡¼¥¿ÂФμèÆÀ¤Ï¤¤¤Ä¤Ç¤â¹Ô¤¨¤ë¡£¤Þ¤¿
333 ¡Ö¥«¡¼¥½¥ë¡×¤Î°ÌÃÖ¤Ï
334 .IR del ,
335 .IR get ,
336 .IR put ,
337 .I sync
338 ¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤Ë¤Ï±Æ¶Á¤µ¤ì¤Ê¤¤¡£
339 ¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥¹¥­¥ã¥ó¤ÎÅÓÃæ¤Ë¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÊѹ¹¤Ï
340 ¥¹¥­¥ã¥ó¤ËÈ¿±Ç¤µ¤ì¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥«¡¼¥½¥ë¤Î¸å¤í¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤Ï
341 ÊÖ¤µ¤ì¤Ê¤¤¤¬¡¢¥«¡¼¥½¥ë¤ÎÁ°¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤ÏÊÖ¤µ¤ì¤ë¡£
342 .IP
343 ¥Õ¥é¥°ÃͤˤÏ\fBɬ¤º\fP°Ê²¼¤Ë¼¨¤¹¤¦¤Á¤Î
344 ¤É¤ì¤«°ì¤Ä¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
345 .RS
346 .TP
347 .B R_CURSOR
348 »ØÄꤷ¤¿¥­¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
349 .I get
350 ¥ë¡¼¥Á¥ó¤È¤Î°ã¤¤¤Ï¡¢¥«¡¼¥½¥ë¤¬¥­¡¼¤Î°ÌÃ֤˥»¥Ã¥È¤¢¤ë¤¤¤Ï
351 ½é´ü²½¤µ¤ì¤ëÅÀ¤Ç¤¢¤ë¡£
352 (Ãí°Õ:
353 .B DB_BTREE
354 ¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿¥­¡¼¤¬
355 ɬ¤º¤·¤â»ØÄꤷ¤¿¥­¡¼¤ËÀµ¤·¤¯¥Þ¥Ã¥Á¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£
356 ÊÖ¤µ¤ì¤¿¥­¡¼¤Ï¡¢»ØÄꤵ¤ì¤¿¥­¡¼¤ËÅù¤·¤¤¤«¤è¤êÂ礭¤¤¤â¤Î¤Î¤¦¤Á
357 ºÇ¾®¤Î¤â¤Î¤Ë¤Ê¤ë
358 (Éôʬ¥­¡¼¥Þ¥Ã¥Á¤«Èϰϸ¡º÷¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£)
359 .TP
360 .B R_FIRST
361 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ½é¤Î¥­¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£
362 ¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£
363 .TP
364 .B R_LAST
365 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ¸å¤Î¥­¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë
366 ¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£
367 .RB ( DB_BTREE
368 ¤È
369 .B DB_RECNO
370 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£)
371 .TP
372 .B R_NEXT
373 ¥«¡¼¥½¥ëľ¸å¤Î¥­¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£
374 ¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï
375 .B R_FIRST
376 ¥Õ¥é¥°¤ÈƱ¤¸¡£
377 .TP
378 .B R_PREV
379 ¥«¡¼¥½¥ëľÁ°¤Î¥­¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£
380 ¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï
381 .B R_LAST
382 ¥Õ¥é¥°¤ÈƱ¤¸¡£
383 .RB ( DB_BTREE
384 ¤È
385 .B DB_RECNO
386 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£)
387 .RE
388 .IP
389 .B R_LAST
390 ¤È
391 .B R_PREV
392 ¤Ï¡¢
393 .B DB_BTREE
394 ¤È
395 .B DB_RECNO
396 ¥¢¥¯¥»¥¹ÊýË¡¤Ç¤·¤«»È¤¨¤Ê¤¤¡£
397 ¤Ê¤¼¤Ê¤é
398 .B R_SETCURSOR
399 ¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ­¤Î½ç½ø¤ò¥­¡¼¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
400 .IP
401 .I seq
402 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
403 .RI ( errno
404 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢
405 À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£
406 »ØÄꤷ¤¿¥­¡¼¤ä¥«¥ì¥ó¥È¥­¡¼¤è¤ê¤âÂ礭¤¤/¾®¤µ¤¤¥­¡¼/¥Ç¡¼¥¿ÂФ¬¤Ê¤¤¾ì¹ç¤Ï
407 1 ¤òÊÖ¤¹¡£
408 .B DB_RECNO
409 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤Æ¡¢
410 ¤«¤Ä¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤¬Ê¸»ú·¿¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ç¡¢
411 ´°À®¤·¤Æ¤¤¤ë¥­¡¼/¥Ç¡¼¥¿ÂФ¬Ìµ¤¤¾ì¹ç¤Ë¤Ï¡¢
412 .I seq
413 ¥ë¡¼¥Á¥ó¤Ï 2 ¤òÊÖ¤¹¡£
414 .TP
415 .I sync
416 ¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ­½Ð¤¹¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
417 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥á¥â¥ê¤ÎÃæ¤À¤±¤Ë¤¢¤ë¾ì¹ç¡¢
418 .I sync
419 ¥ë¡¼¥Á¥ó¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¯¾ï¤ËÀ®¸ù¤¹¤ë¡£
420 .IP
421 flag ¤Ë¤Ï°Ê²¼¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤­¤ë¡£
422 .RS
423 .TP
424 .B R_RECNOSYNC
425 .B DB_RECNO
426 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë
427 ¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢
428 recno ¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤Ë¤Ç¤Ï¤Ê¤¯¡¢
429 ¤½¤Î¥Ù¡¼¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë btree ¥Õ¥¡¥¤¥ë¤Ë sync ¤¬¹Ô¤ï¤ì¤ë¡£
430 (¾ÜºÙ¤Ï
431 .BR recno (3)
432 ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç
433 .I bfname
434 ¥Õ¥£¡¼¥ë¥É¤òÀâÌÀ¤·¤Æ¤¤¤ëÉôʬ¤ò»²¾È¤Î¤³¤È¡£)
435 .RE
436 .IP
437 .I sync
438 ¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·
439 .RI ( errno
440 ¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
441 .SS ¥­¡¼/¥Ç¡¼¥¿ÂÐ
442 Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ë¤ª¤¤¤Æ¡¢
443 ¥­¡¼/¥Ç¡¼¥¿ÂФò¥Ù¡¼¥¹¤Ë¤·¤Æ¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤ë¡£
444 ¥­¡¼¤È¥Ç¡¼¥¿¤Î¤¤¤º¤ì¤â¡¢¼¡¤Î¥Ç¡¼¥¿¹½Â¤¤Çµ­½Ò¤µ¤ì¤ë¡£
445 .in +4n
446 .nf
447
448 typedef struct {
449     void  *data;
450     size_t size;
451 } DBT;
452 .fi
453 .in
454 .I DBT
455 ¹½Â¤ÂΤγÆÍ×ÁǤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
456 .TP
457 .I data
458 ¥Ð¥¤¥Èʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
459 .TP
460 .I size
461 ¥Ð¥¤¥Èʸ»úÎó¤ÎŤµ¡£
462 .PP
463 ¥­¡¼¤È¥Ç¡¼¥¿¤Î¥Ð¥¤¥Èʸ»úÎó¤Ï¡¢
464 ´ðËÜŪ¤Ë¤Ï̵À©¸Â¤ÎŤµ¤Îʸ»úÎó¤ò»²¾È¤Ç¤­¤ë¤¬¡¢
465 ¤·¤«¤·¤¤¤º¤ì¤â»ÈÍѲÄǽ¤Ê¥á¥â¥ê¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
466 ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¥Ð¥¤¥Èʸ»úÎó¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï
467 ²¿¤âÊݾڤ·¤Æ¤¤¤Ê¤¤»ö¤ËÃí°Õ¤¹¤ë¤³¤È¡£
468 .SH ¥¨¥é¡¼
469 .BR dbopen ()
470 ¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
471 .BR open (2)
472 ¤È
473 .BR malloc (3)
474 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
475 .I errno
476 ¤ò¥»¥Ã¥È¤¹¤ë¡£¤¢¤ë¤¤¤Ï°Ê²¼¤ò¥»¥Ã¥È¤¹¤ë¡£
477 .TP
478 .B [EFTYPE]
479 ¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
480 .TP
481 .B [EINVAL]
482 »ØÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿(¥Ï¥Ã¥·¥å´Ø¿ô¡¢¥Ð¥¤¥ÈËä¤á¤Ê¤É)¤¬¸½ºß¤Î¥Õ¥¡¥¤¥ë»ÅÍͤË
483 ¹ç¤Ã¤Æ¤¤¤Ê¤¤¡¢¥Ñ¥é¥á¡¼¥¿¤¬´Ø¿ô¤Ë¤È¤Ã¤Æ̵°ÕÌ£
484 (Î㤨¤Ð¤¢¤é¤«¤¸¤á½é´ü²½¤·¤Ê¤¤¤Ç¥«¡¼¥½¥ë¤ò»È¤¦¤È¤«)¡¢
485 ¥Õ¥¡¥¤¥ë¤È¥½¥Õ¥È¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¹ç¤Ã¤Æ¤¤¤Ê¤¤¡£
486 .PP
487 .I close
488 ¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
489 .BR close (2),
490 .BR read (2),
491 .BR write (2),
492 .BR free (3),
493 .BR fsync (2)
494 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
495 .I errno
496 ¤ò¥»¥Ã¥È¤¹¤ë¡£
497 .PP
498 .IR del ,
499 .IR get ,
500 .I put
501 ¤È
502 .I seq
503 ¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
504 .BR read (2),
505 .BR write (2),
506 .BR free (3),
507 .BR malloc (3)
508 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
509 .I errno
510 ¤ò¥»¥Ã¥È¤¹¤ë¡£
511 .PP
512 .I fd
513 ¥ë¡¼¥Á¥ó¤Ï¥á¥â¥êÆâ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¼ºÇÔ¤¹¤ë¤È
514 .I errno
515 ¤Ë
516 .B ENOENT
517 ¤ò¥»¥Ã¥È¤¹¤ë¡£
518 .PP
519 .I sync
520 ¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
521 .BR fsync (2)
522 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
523 .I errno
524 ¤ò¥»¥Ã¥È¤¹¤ë¡£
525 .SH ¥Ð¥°
526 typedef
527 .I DBT
528 ¤Ï ``data base thang''¤Îά¸ì¤Ç¤¢¤ë¤¬¡¢¤³¤ì¤¬»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
529 ¤Þ¤À»È¤ï¤ì¤Æ¤¤¤Ê¤¤ÂÅÅö¤Ê̾Á°¤¬»×¤¤ÉÕ¤«¤Ê¤«¤Ã¤¿¤¿¤á¤Ç¤¢¤ë¡£
530 .PP
531 ¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤¿¤ä¤ê¤È¤ê¤Ï¤Ò¤É¤¤Âåʪ¤Ç¤¢¤ê¡¢
532 ¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïºï½ü¤µ¤ì¤ë¤À¤í¤¦¡£
533 .PP
534 ¤É¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤â¡¢Æ±»þ¥¢¥¯¥»¥¹¡¢¥í¥Ã¥¯¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó
535 ¤Î»ÅÁȤߤÏÈ÷¤¨¤Æ¤¤¤Ê¤¤¡£
536 .SH ´ØÏ¢¹àÌÜ
537 .BR btree (3),
538 .BR hash (3),
539 .BR mpool (3),
540 .BR recno (3)
541 .sp
542 .IR "LIBTP: Portable, Modular Transactions for UNIX" ,
543 Margo Seltzer, Michael Olson, USENIX proceedings, Winter 1992.