|
|
DBOPEN
Section: C Library Functions (3) Updated: January 2, 1994 Index
Return to Main Contents
̾Á°
dbopen - ¥Ç¡¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¥á¥½¥Ã¥É
½ñ¼°
#include <sys/types.h>
#include <limits.h>
#include <db.h>
DB *
dbopen(const char *file, int flags, int mode, DBTYPE type,
const void *openinfo);
ÀâÌÀ
dbopen
¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£
¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï btree, hash,
UNIX ¥Õ¥¡¥¤¥ë¤Ë»Ø¸þ¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È, ¤Î3¤Ä¤Ç¤¢¤ë¡£
btree ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥½¡¼¥È¤µ¤ì¤¿¥Ð¥é¥ó¥¹¥Ä¥ê¡¼¹½Â¤¤Ç¤¢¤ë¡£
hashed ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢³ÈÄ¥²Äǽ¤ÊưŪ hash ¥¹¥¡¼¥à¤Ç¤¢¤ë¡£
¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë (flat-file) ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢
¸ÇÄêĹ/²ÄÊÑĹ¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£
¤½¤ì¤¾¤ì¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤È¡¢¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÆÃͤξðÊó¤Ï
¤½¤ì¤¾¤ìÂбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸
btree(3),
hash(3),
recno(3)
¤Ë¾ÜºÙ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¡£
dbopen ¤Ï
file
¤òÆÉ¤ß¹þ¤ß (ÆÉ¤ß½ñ¤) ¤¹¤ë¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¡£
file ¥Ñ¥é¥á¡¼¥¿¤ò NULL ¤Ë¤¹¤ì¤Ð¡¢
¥Ç¥£¥¹¥¯¾å¤ËÊݸ¤·¤¿¤¯¤Ê¤¤¥Õ¥¡¥¤¥ë¤òºî¤ë¤³¤È¤â¤Ç¤¤ë¡£
flags
¤È
mode °ú¿ô
¤Ï
open(2)
¥ë¡¼¥Á¥ó¤Ç»ØÄꤹ¤ë¤Î¤ÈƱÍͤǤ¢¤ë¡£¤¿¤À¤·
O_CREAT, O_EXCL, O_EXLOCK, O_NONBLOCK,
O_RDONLY, O_RDWR, O_SHLOCK ¤È O_TRUNC ¥Õ¥é¥°¤À¤±¤¬°ÕÌ£¤ò»ý¤Ä¡£
(Ãí°Õ: O_WRONLY ¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò³«¤¯»ö¤Ï½ÐÍè¤Ê¤¤)
type
°ú¿ô¤Ï DBTYPE ·¿¤Ç¤¢¤ë (¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë <db.h> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£
DB_BTREE, DB_HASH, DB_RECNO ¤Î¤¤¤º¤ì¤«¤ò¥»¥Ã¥È¤Ç¤¤ë¡£
openinfo
°ú¿ô¤Ï¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë¸Çͤʹ½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤ˴ؤ·¤Æ¤Ï³Æ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Î
¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¡£
openinfo
¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤ì¤¾¤ì¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤È¥·¥¹¥Æ¥à¤È¤ËŬ¹ç¤·¤¿
¥Ç¥Õ¥©¥ë¥È¤¬ÍѤ¤¤é¤ì¤ë¡£
dbopen
¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç DB ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¡¢¥¨¥é¡¼¤Î¾ì¹ç NULL ¤òÊÖ¤¹¡£
DB ¹½Â¤ÂÎ¤Ï <db.h> ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢
¾¯¤Ê¤¯¤È¤â°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤¤¤ë¡£
typedef struct {
- DBTYPE type;
int (*close)(const DB *db);
int (*del)(const DB *db, const DBT *key, u_int flags);
int (*fd)(const DB *db);
int (*get)(const DB *db, DBT *key, DBT *data, u_int flags);
int (*put)(const DB *db, DBT *key, const DBT *data,
u_int flags);
int (*sync)(const DB *db, u_int flags);
int (*seq)(const DB *db, DBT *key, DBT *data, u_int flags);
} DB;
³ÆÍ×ÁǤˤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¿¥¤¥×¤È¡¢
ÍÍ¡¹¤Êưºî¤ò¤¹¤ë´Ø¿ô¤Î¥»¥Ã¥È¤¬µ½Ò¤µ¤ì¤Æ¤¤¤ë¡£
¤³¤ì¤é¤Î´Ø¿ô¤Ï
dbopen
¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ë¡£
¥¡¼/¥Ç¡¼¥¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ä¥Õ¥é¥°Ãͤò¼è¤ë¤â¤Î¤â¤¢¤ë¡£
- type
-
ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥¢¥¯¥»¥¹¥á¥½¥Ã¥É (¤È¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È) ¤Î·¿¡£
- close
-
¥¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ¤À¤¹¤¿¤á¤Î¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
³ä¤êÅö¤Æ¤é¤ì¤¿¤ê¥½¡¼¥¹¤ò³«Êü¤·¡¢ÍøÍѤ·¤¿¥Õ¥¡¥¤¥ë(·²)¤ò¥¯¥í¡¼¥º¤¹¤ë¡£
¥¡¼/¥Ç¡¼¥¿ÂФ¬¥á¥â¥ê¤Ë¥¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
close
¤ä
sync
´Ø¿ô¤Ç¤ÎƱ´ü¤Ë¼ºÇÔ¤¹¤ë¤È¡¢¾ðÊó¤ËÌ·½â¤¬À¸¤¸¤ë¤«¾ðÊó¤ò¼º¤¦²ÄǽÀ¤¬¤¢¤ë¡£
close
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
- del
-
¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥¡¼/¥Ç¡¼¥¿ÂФòºï½ü¤¹¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
-
flag
°ú¿ô¤Ï¼¡¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤¤ë¡£
-
- R_CURSOR
-
¥«¡¼¥½¥ë (cursor) ¤¬»²¾È¤·¤Æ¤¤¤ë¥ì¥³¡¼¥É¤òºï½ü¤¹¤ë¡£
¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-
delete
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿»ØÄê¤Î
key
¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£
- fd
-
ÍѤ¤¤Æ¤¤¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¥ë¡¼¥Á¥ó
¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
Ʊ¤¸
file
̾¤Ç
dbopen
¤ò¸Æ¤Ó½Ð¤·¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢
¤½¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹Ã±°ì¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥í¥Ã¥¯´Ø¿ô
fcntl(2)
¤È
flock(2)
¤Ø¤Î°ú¿ô¤È¤·¤Æ°ÂÁ´¤Ë»ÈÍѤǤ¤ë¡£
¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¡¢É¬¤º¤·¤â¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç
ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¤¤¤º¤ì¤«¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¯¤Æ¤âÎɤ¤¡£
¥á¥â¥êÆâ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï̵¤¤¡£
fd
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
- get
-
¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥¡¼¤òÍѤ¤¤Æ¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î
¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
»ØÄꤷ¤¿
key
¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬
data
¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
get
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿
key
¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£
- put
-
¥¡¼/¥Ç¡¼¥¿ÂФò¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËǼ¤á¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
-
flag
°ú¿ô¤Ë¤Ï¼¡¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤¬¥»¥Ã¥È¤Ç¤¤ë¡£
-
- R_CURSOR
-
¥«¡¼¥½¥ë¤¬»²¾È¤·¤Æ¤¤¤ë¥¡¼/¥Ç¡¼¥¿ÂФòÃÖ¤´¹¤¨¤ë¡£
¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£
- R_IAFTER
-
key
¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤Îľ¸å¤Ë¡¢
¿·¤·¤¤¥¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÄɲ乤롣
Äɲ䵤줿¥¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï
key
¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
(DB_RECNO ¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Î¤ß»È¤¨¤ë¡£)
- R_IBEFORE
-
key
¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤ÎľÁ°¤Ë¡¢
¿·¤·¤¤¥¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÁÞÆþ¤¹¤ë¡£
Äɲ䵤줿¥¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï
key
¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
(DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£)
- R_NOOVERWRITE
-
¥¡¼¤¬¤¢¤é¤«¤¸¤á¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¸Â¤ê¡¢¿·¤·¤¤¥¡¼/¥Ç¡¼¥¿ÂФò¤¤¤ì¤ë¡£
- R_SETCURSOR
-
¥¡¼/¥Ç¡¼¥¿ÂФòǼ¤á¡¢¤½¤ì¤ò»Ø¤¹¤è¤¦¤Ë¥«¡¼¥½¥ë°ÌÃÖ¤ò¥»¥Ã¥È¤¢¤ë¤¤¤Ï½é´ü
²½¤¹¤ë¡£(DB_BTREE ¤È DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£)
-
R_SETCURSOR ¤Ï DB_BTREE ¤È DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ¤Ê¤¤¡£
¤Ê¤¼¤Ê¤é R_SETCURSOR ¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ¤Î½ç½ø¤ò¥¡¼
¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
-
R_IAFTER ¤È R_IBEFORE ¤Ï DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ¤Ê¤¤¡£
¤³¤ì¤é¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤¬
¿·¤·¤¤¥¡¼¤òºî¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
¤³¤ì¤¬À®Î©¤¹¤ë¤Î¤Ï¡¢Î㤨¤Ð¡¢½ç½ø¤Å¤±¤é¤¿ÆÈΩ¤Ê¥ì¥³¡¼¥ÉÈֹ椬
¥¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£
-
put
¥ë¡¼¥Á¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¡¢¿·¤·¤¤¥¡¼/¥Ç¡¼¥¿ÂФò
´û¤Ë¸ºß¤¹¤ë¥¡¼¤òÃÖ¤´¹¤¨¤ë»ö¤Æ³ÊǼ¤¹¤ëưºî¤Ç¤¢¤ë¡£
-
put
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿ R_NOOVERWRITE
¥Õ¥é¥°
¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥¡¼¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç 1 ¤òÊÖ¤¹¡£
- seq
-
¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î
¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
¥¡¼¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬
key
¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬
data
¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£
-
¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥¡¼/¥Ç¡¼¥¿ÂФμèÆÀ¤Ï¤¤¤Ä¤Ç¤â¹Ô¤¨¤ë¡£¤Þ¤¿
¡Ö¥«¡¼¥½¥ë¡×¤Î°ÌÃÖ¤Ï
del,
get,
put,
sync
¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤Ë¤Ï±Æ¶Á¤µ¤ì¤Ê¤¤¡£
¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥¹¥¥ã¥ó¤ÎÅÓÃæ¤Ë¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÊѹ¹¤Ï
¥¹¥¥ã¥ó¤ËÈ¿±Ç¤µ¤ì¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥«¡¼¥½¥ë¤Î¸å¤í¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤Ï
ÊÖ¤µ¤ì¤Ê¤¤¤¬¡¢¥«¡¼¥½¥ë¤ÎÁ°¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤ÏÊÖ¤µ¤ì¤ë¡£
-
¥Õ¥é¥°ÃͤˤÏɬ¤º°Ê²¼¤Ë¼¨¤¹¤¦¤Á¤Î
¤É¤ì¤«°ì¤Ä¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-
- R_CURSOR
-
»ØÄꤷ¤¿¥¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
get
¥ë¡¼¥Á¥ó¤È¤Î°ã¤¤¤Ï¡¢¥«¡¼¥½¥ë¤¬¥¡¼¤Î°ÌÃ֤˥»¥Ã¥È¤¢¤ë¤¤¤Ï
½é´ü²½¤µ¤ì¤ëÅÀ¤Ç¤¢¤ë¡£
(Ãí°Õ: DB_BTREE ¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿¥¡¼¤¬
ɬ¤º¤·¤â»ØÄꤷ¤¿¥¡¼¤ËÀµ¤·¤¯¥Þ¥Ã¥Á¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£
ÊÖ¤µ¤ì¤¿¥¡¼¤Ï¡¢»ØÄꤵ¤ì¤¿¥¡¼¤ËÅù¤·¤¤¤«¤è¤êÂ礤¤¤â¤Î¤Î¤¦¤Á
ºÇ¾®¤Î¤â¤Î¤Ë¤Ê¤ë
(Éôʬ¥¡¼¥Þ¥Ã¥Á¤«Èϰϸ¡º÷¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£)
- R_FIRST
-
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ½é¤Î¥¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£
¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£
- R_LAST
-
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ¸å¤Î¥¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë
¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£
(DB_BTREE ¤È DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£)
- R_NEXT
-
¥«¡¼¥½¥ëľ¸å¤Î¥¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£
¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï R_FIRST ¥Õ¥é¥°¤ÈƱ¤¸¡£
- R_PREV
-
¥«¡¼¥½¥ëľÁ°¤Î¥¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£
¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï R_LAST ¥Õ¥é¥°¤ÈƱ¤¸¡£
(DB_BTREE ¤È DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£)
-
R_LAST ¤È R_PREV ¤Ï¡¢DB_BTREE ¤È DB_RECNO ¥¢¥¯¥»¥¹ÊýË¡¤Ç¤·¤«»È¤¨¤Ê¤¤¡£
¤Ê¤¼¤Ê¤é R_SETCURSOR ¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ¤Î½ç½ø¤ò¥¡¼
¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
-
seq
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢
À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£
»ØÄꤷ¤¿¥¡¼¤ä¥«¥ì¥ó¥È¥¡¼¤è¤ê¤âÂ礤¤/¾®¤µ¤¤¥¡¼/¥Ç¡¼¥¿ÂФ¬¤Ê¤¤¾ì¹ç¤Ï
1 ¤òÊÖ¤¹¡£
DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤Æ¡¢
¤«¤Ä¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤¬Ê¸»ú·¿¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ç¡¢
´°À®¤·¤Æ¤¤¤ë¥¡¼/¥Ç¡¼¥¿ÂФ¬Ìµ¤¤¾ì¹ç¤Ë¤Ï¡¢
seq
¥ë¡¼¥Á¥ó¤Ï 2 ¤òÊÖ¤¹¡£
- sync
-
¥¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ½Ð¤¹¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥á¥â¥ê¤ÎÃæ¤À¤±¤Ë¤¢¤ë¾ì¹ç¡¢
sync
¥ë¡¼¥Á¥ó¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¯¾ï¤ËÀ®¸ù¤¹¤ë¡£
-
flag ¤Ë¤Ï°Ê²¼¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤¤ë¡£
-
- R_RECNOSYNC
-
DB_RECNO ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë
¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢
recno ¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤Ë¤Ç¤Ï¤Ê¤¯¡¢
¤½¤Î¥Ù¡¼¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë btree ¥Õ¥¡¥¤¥ë¤Ë sync ¤¬¹Ô¤ï¤ì¤ë¡£
(¾ÜºÙ¤Ï
recno(3)
¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç
bfname
¥Õ¥£¡¼¥ë¥É¤òÀâÌÀ¤·¤Æ¤¤¤ëÉôʬ¤ò»²¾È¤Î¤³¤È¡£)
-
sync
¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç -1 ¤òÊÖ¤·(
errno
¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
¥¡¼/¥Ç¡¼¥¿ÂÐ
Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ë¤ª¤¤¤Æ¡¢
¥¡¼/¥Ç¡¼¥¿ÂФò¥Ù¡¼¥¹¤Ë¤·¤Æ¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤ë¡£
¥¡¼¤È¥Ç¡¼¥¿¤Î¤¤¤º¤ì¤â¡¢¼¡¤Î¥Ç¡¼¥¿¹½Â¤¤Çµ½Ò¤µ¤ì¤ë¡£
typedef struct {
-
void *data;
size_t size;
} DBT;
DBT ¹½Â¤ÂΤγÆÍ×ÁǤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
- data
-
¥Ð¥¤¥Èʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£
- size
-
¥Ð¥¤¥Èʸ»úÎó¤ÎŤµ¡£
¥¡¼¤È¥Ç¡¼¥¿¤Î¥Ð¥¤¥Èʸ»úÎó¤Ï¡¢
´ðËÜŪ¤Ë¤Ï̵À©¸Â¤ÎŤµ¤Îʸ»úÎó¤ò»²¾È¤Ç¤¤ë¤¬¡¢
¤·¤«¤·¤¤¤º¤ì¤â»ÈÍѲÄǽ¤Ê¥á¥â¥ê¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¥Ð¥¤¥Èʸ»úÎó¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï
²¿¤âÊݾڤ·¤Æ¤¤¤Ê¤¤»ö¤ËÃí°Õ¤¹¤ë¤³¤È¡£
¥¨¥é¡¼
dbopen
¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
open(2)
¤È
malloc(3)
¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
errno
¤ò¥»¥Ã¥È¤¹¤ë¡£¤¢¤ë¤¤¤Ï°Ê²¼¤ò¥»¥Ã¥È¤¹¤ë¡£
- [EFTYPE]
-
¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
- [EINVAL]
-
»ØÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿(¥Ï¥Ã¥·¥å´Ø¿ô¡¢¥Ð¥¤¥ÈËä¤á¤Ê¤É)¤¬¸½ºß¤Î¥Õ¥¡¥¤¥ë»ÅÍͤË
¹ç¤Ã¤Æ¤¤¤Ê¤¤¡¢¥Ñ¥é¥á¡¼¥¿¤¬´Ø¿ô¤Ë¤È¤Ã¤ÆÌµ°ÕÌ£
(Î㤨¤Ð¤¢¤é¤«¤¸¤á½é´ü²½¤·¤Ê¤¤¤Ç¥«¡¼¥½¥ë¤ò»È¤¦¤È¤«)¡¢
¥Õ¥¡¥¤¥ë¤È¥½¥Õ¥È¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¹ç¤Ã¤Æ¤¤¤Ê¤¤¡£
close
¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
close(2),
read(2),
write(2),
free(3),
fsync(2)
¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
errno
¤ò¥»¥Ã¥È¤¹¤ë¡£
del,
get,
put
¤È
seq
¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
read(2),
write(2),
free(3)
malloc(3)
¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
errno
¤ò¥»¥Ã¥È¤¹¤ë¡£
fd
¥ë¡¼¥Á¥ó¤Ï¥á¥â¥êÆâ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¼ºÇÔ¤¹¤ë¤È
errno
¤Ë ENOENT ¤ò¥»¥Ã¥È¤¹¤ë¡£
sync
¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
fsync(2)
¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿
errno
¤ò¥»¥Ã¥È¤¹¤ë¡£
´ØÏ¢¹àÌÜ
btree(3),
hash(3),
mpool(3),
recno(3)
LIBTP: Portable, Modular Transactions for UNIX,
Margo Seltzer, Michael Olson, USENIX proceedings, Winter 1992.
¥Ð¥°
typedef DBT ¤Ï ``data base thang''¤Îά¸ì¤Ç¤¢¤ë¤¬¡¢
¤³¤ì¤¬»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
¤Þ¤À»È¤ï¤ì¤Æ¤¤¤Ê¤¤ÂÅÅö¤Ê̾Á°¤¬»×¤¤ÉÕ¤«¤Ê¤«¤Ã¤¿¤¿¤á¤Ç¤¢¤ë¡£
¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤¿¤ä¤ê¤È¤ê¤Ï¤Ò¤É¤¤Âåʪ¤Ç¤¢¤ê¡¢
¾Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïºï½ü¤µ¤ì¤ë¤À¤í¤¦¡£
¤É¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤â¡¢Æ±»þ¥¢¥¯¥»¥¹¡¢¥í¥Ã¥¯¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó
¤Î»ÅÁȤߤÏÈ÷¤¨¤Æ¤¤¤Ê¤¤¡£
Index
- ̾Á°
-
- ½ñ¼°
-
- ÀâÌÀ
-
- ¥¡¼/¥Ç¡¼¥¿ÂÐ
-
- ¥¨¥é¡¼
-
- ´ØÏ¢¹àÌÜ
-
- ¥Ð¥°
-
|