Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

GDBM

Section: C Library Functions (3)
Updated: 5/19/99
Index Return to Main Contents
 

̾Á°

GDBM - GNU¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥Þ¥Í¡¼¥¸¥ã¡£dbm ¤ª¤è¤Ó ndbm ¸ß´¹µ¡Ç½¤ò´Þ¤à¡£ (Version 1.8.)

 

½ñ¼°

#include <gdbm.h>

extern gdbm_error
gdbm_errno

extern char
*gdbm_version

GDBM_FILE
gdbm_open (name, block_size, read_write, mode, fatal_func)
char * name;
int block_size, read_write, mode;
void (*fatal_func) ();

void
gdbm_close (dbf)
GDBM_FILE dbf;

int
gdbm_store (dbf, key, content, flag)
GDBM_FILE dbf;
datum key, content;
int flag;

datum
gdbm_fetch (dbf, key)
GDBM_FILE dbf;
datum key;

int
gdbm_delete (dbf, key)
GDBM_FILE dbf;
datum key;

datum
gdbm_firstkey (dbf)
GDBM_FILE dbf;

datum
gdbm_nextkey (dbf, key)
GDBM_FILE dbf;
datum key;

int
gdbm_reorganize (dbf)
GDBM_FILE dbf;

void
gdbm_sync (dbf)
GDBM_FILE dbf;

int
gdbm_exists (dbf, key)
GDBM_FILE dbf;
datum key;

char *
gdbm_strerror (errno)
gdbm_error errno;

int
gdbm_setopt (dbf, option, value, size)
GDBM_FILE dbf;
int option;
int *value;
int size;

int
gdbm_fdesc (dbf)
GDBM_FILE dbf;

DBM Compatability routines:

#include <dbm.h>

int
dbminit (name)
char *name;

int
store (key, content)
datum key, content;

datum
fetch (key)
datum key;

int
delete (key)
datum key;

datum
firstkey ()

datum
nextkey (key)
datum key;

int
dbmclose ()

NDBM Compatability routines:

#include <ndbm.h>

DBM
*dbm_open (name, flags, mode)
char *name;
int flags, mode;

void
dbm_close (file)
DBM *file;

datum
dbm_fetch (file, key)
DBM *file;
datum key;

int
dbm_store (file, key, content, flags)
DBM *file;
datum key, content;
int flags;

int
dbm_delete (file, key)
DBM *file;
datum key;

datum
dbm_firstkey (file)
DBM *file;

datum
dbm_nextkey (file)
DBM *file;

int
dbm_error (file)
DBM *file;

int
dbm_clearerr (file)
DBM *file;

int
dbm_pagfno (file)
DBM *file;

int
dbm_dirfno (file)
DBM *file;

int
dbm_rdonly (file)
DBM *file;

 

½ñ¼°

GNU dbm¤Ï¡¢¥­¡¼¤È¥Ç¡¼¥¿¤Î¥Ú¥¢¤ò´Þ¤ó¤À¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ò¼è¤ê°·¤¦ ¥ë¡¼¥Á¥ó·²¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡£ Ä󶡤µ¤ì¤ë¥¢¥¯¥»¥¹¤È¤·¤Æ¤Ï¡¢¥­¡¼¤Ë¤è¤ë³ÊǼ¡¢¥­¡¼¤Ë¤è¤ë¼è¤ê½Ð¤·¡¢ ¥­¡¼¤Ë¤è¤ëºï½ü¤Î¾¡¢¤¹¤Ù¤Æ¤Î¥­¡¼¤ËÅϤ륽¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤²£ÃÇŪ¤Ê ¥¢¥¯¥»¥¹¤¬¤¢¤ë¡£ °ì¤Ä¤Î¥×¥í¥»¥¹¤«¤é¤ÏÊ£¿ô¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òƱ»þ¤ËÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

gdbm¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¥×¥í¥»¥¹¤Ï¡¢¡Ö¥ê¡¼¥À¡×¤Þ¤¿¤Ï¡Ö¥é¥¤¥¿¡× ¤È¸Æ¤Ð¤ì¤ë¡£ 1 ¤Ä¤Î gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¥é¥¤¥¿¤Ï 1 ¤Ä¤À¤±¤À¤¬¡¢ ¥ê¡¼¥À¤ÏÊ£¿ô¤¬ 1 ¤Ä¤Î gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¥ê¡¼¥À¤È¥é¥¤¥¿¤ÏƱ»þ¤ËƱ¤¸¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¼ê³¤­¤Ï¡§

¡¡ GDBM_FILE dbf;
 
   dbf = gdbm_open ( name, block_size, read_write, mode, fatal_func )

name ¤Ï¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë¡£(´°Á´¤Ê̾Á°¡¢gdbm¤Ï¤³¤Î̾Á°¤Ë ʸ»úÎó¤òÉÕ¤±²Ã¤¨¤ë¤è¤¦¤Ê¤³¤È¤Ï¤·¤Ê¤¤) block_size ¤Ï¥Ç¥£¥¹¥¯¤«¤é¥á¥â¥ê¤Ø 1 ²ó¤ËžÁ÷¤µ¤ì¤ë¥µ¥¤¥º¤Ç¤¢¤ë¡£ ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¾ì¹ç°Ê³°¤Ï̵»ë¤µ¤ì¤ë¡£ºÇ¾®¥µ¥¤¥º ¤Ï 512 ¤Ç¤¢¤ë¡£ 512 ¤è¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ë¤Ï, gdbm ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ¹¤ë stat ¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò»ÈÍѤ¹¤ë¡£ read_write ¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ë¡£
GDBM_READER ¥ê¡¼¥À
GDBM_WRITER ¥é¥¤¥¿
GDBM_WRCREAT ¥é¥¤¥¿ - ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬Â¸ºß¤·¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
GDBM_NEWDB ¥é¥¤¥¿ - ¤¹¤Ç¤Ë¸ºß¤·¤Æ¤â¿·¤·¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤¹¤ë
ºÇ¸å¤Î 3 ¤Ä¤Ë¤Ä¤¤¤Æ¤Ï¡Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥é¥¤¥¿) read_write ¤ËÂФ·¤Æ °Ê²¼¤ò¥Ó¥Ã¥È¤ÎOR ¤Ë¤è¤êÄɲäǤ­¤ë: GDBM_SYNC ¤Ï¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁàºî¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤¹¤ë¡¢¤Þ¤¿ GDBM_NOLOCK ¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë¥é¥¤¥Ö¥é¥ê¤«¤é¤Î¥í¥Ã¥¯Æ°ºî¤ò¹Ô¤ï¤Ê¤¤¡£ ¥ª¥×¥·¥ç¥ó GDBM_FAST ¤Ï gdbm ¤Î´ûÄêÆ°ºî¤¬ no-sync ¥â¡¼¥É¤Ë¤Ê¤Ã¤¿¤¿¤á¤Ë¤â¤¦»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£
mode ¤Ï¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤Ç¤¢¤ë¡Êchmod(2) ¤ª¤è¤Ó open(2)¤ò »²¾È¡Ë¡£ (*Fatal_func) () ¤Ïdbm ¤¬Ã×̿Ū¥¨¥é¡¼¤ò¸¡½Ð¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤¹ ´Ø¿ô¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ø¤ÎÍ£°ì¤Î¥Ñ¥é¥á¡¼¥¿¤Ïʸ»úÎó¤Ç¤¢¤ë¡£ ÃÍ 0 ¤¬»ØÄꤵ¤ì¤ë¤È¡¢gdbm¤Ï¥Ç¥Õ¥©¥ë¥È¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£

ÊÖ¤êÃÍ dbf ¤Ï¡¢¤½¤Îgdbm¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¾¤Î¤¹¤Ù¤Æ¤Î¥ë¡¼¥Á¥ó ¤ËɬÍפʥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ NULL ¥Ý¥¤¥ó¥¿¤¬Ê֤俾ì¹ç¡¢gdbm_open ¤Ï À®¸ù¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ gdbm ¤Î¥¨¥é¡¼¤Ï gdbm_errno ¤Ë¡¢¥·¥¹¥Æ¥à¤Î¥¨¥é¡¼¤Ï errno ¤Ë³ÊǼ¤µ¤ì¤ë¡£(¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï gdbmerrno.h ¤ò»²¾È¡Ë

°Ê²¼¤Î¤¹¤Ù¤Æ¤Î¥³¡¼¥ë¤Ë¤ª¤¤¤Æ¤Ï¡¢ ¥Ñ¥é¥á¡¼¥¿ dbf ¤Ï gdbm_open ¤«¤é Ê֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ ¤É¤ó¤Ê¥Õ¥¡¥¤¥ë¤Ç¤â¥ª¡¼¥×¥ó¤·¤¿¤â¤Î¤ò¥¯¥í¡¼¥º¤¹¤ë¤³¤È¤Ï½ÅÍפǤ¢¤ë¡£ ¥¯¥í¡¼¥º¤Ï¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ê¡¼¥À¿ô¡¿¥é¥¤¥¿¿ô¤ò¹¹¿·¤¹¤ë¡£ ¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¹Ô¤¦¡£


   gdbm_close (dbf);

¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï 3 ¤Ä¤Î¼ç¤Ê¥ë¡¼¥Á¥ó¤Ë¤è¤Ã¤ÆÍøÍѤǤ­¤ë¡£ºÇ½é¤Ï¥Ç¡¼¥¿¤ò ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£


   ret = gdbm_store ( dbf, key, content, flag )

dbf ¤Ï gdbm_open ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ key ¤Ï¥­¡¼¥Ç¡¼¥¿¤Ç¡¢content ¤Ï key ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ ¥Ç¡¼¥¿¤Ç¤¢¤ë¡£ flag ¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
GDBM_INSERT ÁÞÆþ¤Î¤ß¡£¥­¡¼¤¬Â¸ºß¤¹¤ì¤Ð¥¨¥é¡¼¤È¤Ê¤ë¡£
GDBM_REPLACE ¥­¡¼¤¬Â¸ºß¤¹¤ì¤ÐÆâÍÆ¤ò¹¹¿·¤¹¤ë¡£

¥ê¡¼¥À¤¬ gdbm_store ¤ò¥³¡¼¥ë¤·¤¿¾ì¹ç¡¢ÊÖ¤êÃͤÏ-1¤È¤Ê¤ë¡£ GDBM_INSERT ¤¬»ØÄꤵ¤ì¤¿»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë key ¤¬Â¸ºß¤¹¤ë¤È¡¢ ÊÖ¤êÃÍ¤Ï 1 ¤Ç¤¢¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£

Ãí°Õ: ´û¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¸ºß¤¹¤ë¥­¡¼¤ò»ØÄꤷ¤Æ³ÊǼ¤¹¤ë¾ì¹ç¡¢ GDBM_REPLACE¤Ç¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢gdbm ¤Ï¸Å¤¤¥Ç¡¼¥¿¤ò ¿·¤·¤¤¥Ç¡¼¥¿¤ÇÃÖ¤­´¹¤¨¤ë¡£ Ʊ¤¸¥­¡¼¤Ç 2 ¤Ä¤Î¥Ç¡¼¥¿¡¦¥¢¥¤¥Æ¥à¤òÆÀ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤·¡¢ ¤Þ¤¿ gdbm_store ¤¬¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤â¤Ê¤¤¡£

Ãí°Õ: gdbm ¤Î¥µ¥¤¥º¤Ï¡¢dbm ¤ä ndbm ¤È°Û¤Ê¤êÀ©¸Â¤µ¤ì¤Ê¤¤¡£ ¥Ç¡¼¥¿¤ÏɬÍפʤÀ¤±Â礭¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¥Ç¡¼¥¿¤ò¸¡º÷¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë:


  content = gdbm_fetch ( dbf, key )

dbf ¤Ï gdbm_open ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ Key ¤Ï¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£

ÊÖ¤êÃͤÎdptr¤¬NULL¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤Ï¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ ¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬Ê֤롣 dptr¤Îµ­²±¶õ´Ö¤Ï malloc(3C) ¤Ë¤è¤ê³ÎÊݤµ¤ì¤ë¡£ Gdbm ¤Ï¼«Æ°Åª¤Ë¤³¤Î¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¤³¤È¤Ï¤·¤Ê¤¤¡£ ɬÍפÎ̵¤¯¤Ê¤Ã¤¿Îΰè¤ò²òÊü¤¹¤ë¤Î¤Ï¥×¥í¥°¥é¥Þ¤ÎÀÕǤ¤Ç¤¢¤ë¡£

¥Ç¡¼¥¿¤ò»²¾È¤»¤º¤Ë¡¢¸¡º÷¤À¤±¤¹¤ë¾ì¹ç¤Ë¤Ï¡§


   ret = gdbm_exists ( dbf, key )

Dbf ¤Ï gdbm_open ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ key ¤Ï¸¡º÷¤·¤¿¤¤¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£

¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ë key ¤¬¸«¤Ä¤«¤ì¤Ð¡¢ÊÖ¤êÃÍret ¤Ïtrue¤Ç¤¢¤ë¡£ ²¿¤âÂбþ¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð ret ¤Ïfalse¤Ç¤¢¤ë¡£

gdbm_fetch ¤Ç¤Ï¥á¥â¥ê³ÎÊݤ¬¹Ô¤ï¤ì¤ë¤¬¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï¤½¤ì¤ò¤·¤Ê¤¤ ¤Î¤Ç¡¢¥ì¥³¡¼¥É¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤ò¤¹¤ë»þ¤ËÌò¤ËΩ¤Ä¡£

¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤¢¤ë¥Ç¡¼¥¿¤òºï½ü¤¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë:


   ret = gdbm_delete ( dbf, key )

Dbf ¤Ï gdbm_open ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£Key ¤Ï ºï½ü¤·¤¿¤¤¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£

¥¢¥¤¥Æ¥à¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¤ê¡¢Í׵ᤷ¤¿¤Î¤¬¥ê¡¼¥À¤À¤Ã¤¿¾ì¹ç¡¢ÊÖ ¤êÃÍ¤Ï -1 ¤Ç¤¢¤ë¡£ ºï½ü¤ËÀ®¸ù¤¹¤ì¤ÐÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£

¼¡¤Î2¤Ä¤Î¥ë¡¼¥Á¥ó¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Ãæ¤Î¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ ¥¢¥¯¥»¥¹¤Ï¥­¡¼½ç¤Ç¤Ï¤Ê¤¤¤¬¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ç¤¹¤Ù¤Æ¤Î¥­¡¼¤Ë³Æ 1 ²ó ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Æ¤¤¤ë¡£(¥¢¥¯¥»¥¹½ç½ø¤Ï¥Ï¥Ã¥·¥åÃͤνç¤Ë¤Ê¤ë¡£)


   key = gdbm_firstkey ( dbf )


   nextkey = gdbm_nextkey ( dbf, key )

dbf ¤Ï gdbm_open ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£key ¤Ï ¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£

ÊÖ¤êÃͤϤɤÁ¤é¤â datum ·¿¤Ç¤¢¤ë¡£ÊÖ¤êÃͤΠdptr Í×ÁǤ¬ NULL ¤Î¾ì¹ç¡¢ºÇ½é¤Î¥­¡¼¤Þ¤¿¤Ï¼¡¤Î¥­¡¼¤¬¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ ÊÖ¤êÃͤΠdptr Í×ÁǤ¬»Ø¤·¤Æ¤¤¤ë¤Î¤Ï malloc(3C) ¤Ë¤è¤ê³ÎÊݤµ¤ì¤¿¥Ç¡¼¥¿¤Ç¤¢¤ê¡¢ gdbm ¤Ï free ¤·¤Æ¤Ï¤¯¤ì¤Ê¤¤¤³¤È¤Ë ¤â¤¦°ìÅÙÃí°Õ¤¹¤ë¤³¤È¡£

¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Ç»²¾È¤¹¤ë¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤¿¡£ ¤¿¤È¤¨¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀµÅöÀ­¤ò³Îǧ¤·¤¿¤ê¤¹¤ë¤è¤¦¤ÊÌÜŪ¤Ç¡£

¥Õ¥¡¥¤¥ë¤Ø¤Î¡Ö»²¾È¡×¤Ï¡Ö¥Ï¥Ã¥·¥å¡¦¥Æ¡¼¥Ö¥ë¡×¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£ gdbm_delete ¤Ï¥Ï¥Ã¥·¥å¡¦¥Æ¡¼¥Ö¥ë¤òºÆ¹½À®¤·¤Æ¡¢¡Ö¸«¤Ä¤±¤é¤ì¤ë¤³¤È¤Î¤Ê¤¤¡× ¥¢¥¤¥Æ¥à¤¬¥Æ¡¼¥Ö¥ë¤ÎÃæ¤ÇÊüÃÖ¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¡¢¤¹¤Ù¤Æ¤Î¶¥¹ç¤ò³Îǧ¤¹¤ë¡£ ¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤Î¼ÂÂΤËÊѹ¹¤ò²Ã¤¨¤Ê¤«¤Ã¤¿¤È¤·¤Æ¤â¡¢¥ª¥ê¥¸¥Ê¥ë¤Î¥­¡¼¤Î ½ç½ø¤ÏÊݾڤµ¤ì¤Ê¤¤¡£

°Ê²¼¤Î¥ë¡¼¥×¤¬¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¡¢¤¤¤¯¤Ä¤«¤Î¥­¡¼¤¬¸«¤Ä¤±¤é¤ì ¤Ê¤¤¤³¤È¤¬µ¯¤³¤êÆÀ¤ë¡£


    key = gdbm_firstkey ( dbf );
    while ( key.dptr ) {
       nextkey = gdbm_nextkey ( dbf, key );
       if ( some condition ) {
          gdbm_delete ( dbf, key );
          free ( key.dptr );
       }
       key = nextkey;
    }

°Ê²¼¤Î¥ë¡¼¥Á¥ó¤Ï·«¤êÊÖ¤·»È¤ï¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£


   ret = gdbm_reorganize ( dbf )

¤â¤·¤¢¤Ê¤¿¤¬¤¿¤¯¤µ¤ó¤Îºï½ü¤ò¹Ô¤¤¡¢ gdbm ¥Õ¥¡¥¤¥ë¤¬»È¤Ã¤Æ¤¤¤ë¥¹¥Ú¡¼ ¥¹¤ò¾®¤µ¤¯¤·¤¿¤¤¤È»×¤¦¤Ê¤é¤Ð¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÆ¹½À®¤ò¹Ô¤¦¡£ Gdbm ¤Ï¤³¤ÎºÆ¹½À®°Ê³°¤Ç gdbm ¤¬»È¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÂ礭 ¤µ¤ò¾®¤µ¤¯¤¹¤ë¤³¤È¤Ï̵¤¤¡£(ºï½ü¤µ¤ì¤¿¥¹¥Ú¡¼¥¹¤ÏºÆÍøÍѤµ¤ì¤ë)

¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ GDBM_SYNC ¥Õ¥é¥°ÉÕ¤­¤Ç open ¤µ¤ì¤Ê¤¤¸Â¤ê¡¢gdbm ¤Ï¼¡¤Îư ºî¤ò·Ñ³¤¹¤ëÁ°¤Ë¡¢write ¤¬¥Ç¥£¥¹¥¯¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ë¤Î¤òÂԤĤ褦¤Ê¤³¤È¤Ï¤· ¤Ê¤¤¡£ ¼¡¤Î¥ë¡¼¥Á¥ó¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤òʪÍýŪ¤Ë¥Ç¥£¥¹¥¯¤Ë½ñ¤­½Ð¤¹¤³¤È¤òÊݾڤ¹¤ë¡£


   gdbm_sync ( dbf )

¤³¤ì¤Ï¥á¥¤¥ó¥á¥â¥ê¤Î¾õÂÖ¤ò¥Ç¥£¥¹¥¯¤Î¾õÂÖ¤ÈÆ±´ü¤µ¤»¤ë¤Þ¤Ç¤ÏÌá¤Ã¤ÆÍè¤Ê¤¤¡£

gdbm ¤Î¥¨¥é¡¼¥³¡¼¥É¤ò±Ñʸ¤Î¥Æ¥­¥¹¥È¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥ë¡¼¥Á¥ó ¤òÍøÍѤ¹¤ë¡£


   ret = gdbm_strerror ( errno )

¤³¤³¤Ç errno ¤Ï gdbm_error ·¿¤Ç¤¢¤ê¡¢Ä̾ï¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô ¤Î gdbm_errno ¤Ç¤¢¤ë¡£Âбþ¤¹¤ë¥Õ¥ì¡¼¥º¤¬Ê֤äƤ¯¤ë¡£

Gdbm ¤Ï´û¤Ë open ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Ç¤­ ¤ëµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£


   ret = gdbm_setopt ( dbf, option, value, size )

¤³¤³¤Ç¡¢ dbf ¤ÏľÁ°¤Î gdbm_open ¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ option ¤ÏÀßÄꤷ¤¿¤¤¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£¸½ºß¤ÎÀµ¤·¤¤¥ª¥×¥·¥ç¥ó ¤Ï¡§

GDBM_CACHESIZE - ÆâÉô¤Î bucket ¥­¥ã¥Ã¥·¥å¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï GDBM_FILE ¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë°ìÅÙ¤À¤±ÀßÄê¤Ç¤­¡¢ ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ½é¤Î¥¢¥¯¥»¥¹»þ¤Ë¼«Æ°Åª¤Ë 100 ¤¬ÀßÄꤵ¤ì¤ë¡£

GDBM_FASTMODE - fast mode ¤Î on, off ¤ò»ØÄꤹ¤ë¡£ fast mode ¤Ï¤¹¤Ç¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Æ¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë ÂФ·¤Æ¥È¥°¥ë(on, off) ¤Ç¤­¤ë¡£value (°Ê²¼»²¾È)¤Ï TRUE ¤« FALSE ¤¬ÀßÄê¤Ç¤­¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤¦»È¤ï¤ì¤Ê¤¤¡£

GDBM_SYNCMODE - ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎƱ´ü½èÍý¤ò on, off ¤¹¤ë¡£¤³¤Î ÀßÄê¤Î¥Ç¥Õ¥©¥ë¥È¤Ï off ¤Ç¤¢¤ë¡£value (°Ê²¼»²¾È)¤Ï TRUE ¤« FALSE ¤ò»ØÄꤹ¤ë¡£

GDBM_CENTFREE - central ¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯¥×¡¼¥ë ¤ò on, off ¤¹¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï off ¤Ç¤¢¤ê¡¢¤³¤ì¤Ï°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Gdbm ¤Î¥Õ¥ê¡¼ ¥Ö¥í¥Ã¥¯¤Î¼è¤ê°·¤¤¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤â¤·¡¢ÀßÄꤵ¤ì¤ë¤È¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤½ ¤Î¸å¤Ï¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯¤Ï¥°¥í¡¼¥Ð¥ë¥×¡¼¥ë¤Ë¤ª¤«¤ì¡¢(ÍýÏÀŪ¤Ë¤Ï)¤è¤ê¿¤¯¤Î ¥Õ¥¡¥¤¥ë¥¹¥Ú¡¼¥¹¤¬¤è¤êÁ᤯ºÆÍøÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£value (°Ê²¼»² ¾È)¤Ï TRUE ¤« FALSE ¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ Ãí°Õ¡§¤³¤Îµ¡Ç½¤Ï¤Þ¤À¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£


   GDBM_COALESCEBLKS - ¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯¥Þ¡¼¥¸¥ó¥°¤Î on, off ¤òÀßÄê ¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï off ¤ÇÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Gdbm ¤Î¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯ ¤Î°·¤¤¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤â¤·¡¢ÀßÄꤵ¤ì¤ë¤È¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÉÕ¶á¤Ë¤¢¤ë¥Õ¥ê¡¼ ¥Ö¥í¥Ã¥¯¤ò¥Þ¡¼¥¸¤¹¤ë¡£¤³¤ì¤Ï ÆÃ¤ËGDBM_CENTFREE ¤È°ì½ï¤Ë»È¤ï¤ì¤¿ ¤È¤·¤Æ¤â »þ´Ö¤È CPU ¤Î¤«¤«¤ë½èÍý¤Ë¤Ê¤ë¡£value (°Ê²¼»²¾È) ¤Ï TRUE ¤« FALSE ¤òÀßÄꤹ¤ë¤Ù¤­¤Ç¤¢¤ë¡£ Ãí°Õ¡§¤³¤Îµ¡Ç½¤Ï¤Þ¤À¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£


 value ¤Ï option ¤ËÀßÄꤹ¤ëÃͤǤ¢¤ê¡¢integer ¤Ø¤Î¥Ý¥¤¥ó¥¿ ¤Ç¤¢¤ë¡£ size ¤Ï value ¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥È¤µ¤ì¤ë¥Ç¡¼¥¿¤Î¥µ¥¤ ¥º¤Ç¤¢¤ë¡£ÊÖ¤êÃÍ¤Ï ¼ºÇÔ¤·¤¿¾ì¹ç -1 ¤Ë¤Ê¤ê¡¢À®¸ù¤·¤¿¤é 0 ¤Ë¤Ê¤ë¡£¼ºÇԤΠ¾ì¹ç¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î gdbm_errno ¤Ë¤ÏÃͤ¬ÀßÄꤵ¤ì¤ë¡£

Î㤨¤Ð¡¢gdbm_open ¤Ç¥ª¡¼¥×¥ó¤·¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¢¥¯¥»¥¹¤¹¤ëÁ°¤Ë¡¢ ¥­¥ã¥Ã¥·¥å¤È¤·¤Æ 10 ¤ò»È¤¦¤è¤¦¤ËÀßÄꤹ¤ë¾ì¹ç¡¢°Ê²¼¤Î¥³¡¼¥É¤¬ÍøÍѤǤ­¤ë¡§


   int value = 10;


   ret = gdbm_setopt( dbf, GDBM_CACHESIZE, &value, sizeof(int));

¤â¤·¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ GDBM_NOLOCK ¥Õ¥é¥°ÉÕ¤­¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¾ì¹ç¡¢ ¥æ¡¼¥¶¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¤Æ¡¢Î㤨¤ÐÊ£¿ô¤Î¥é¥¤¥¿Áàºî¤òƱ°ì¤Î¥Õ¥¡¥¤¥ë ¤ËÂФ·¤Æ¹Ô¤¦¤è¤¦¤Ê¡¢¼«Ê¬¤ÎÆÈ¼«¤Î¥Õ¥¡¥¤¥ë¥í¥Ã¥­¥ó¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡¢

¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¡¢ gdbm_fdesc ¥ë¡¼¥Á¥ó¤¬Ä󶡤µ¤ì¤ë¡£


   ret = gdbm_fdesc ( dbf )

¤³¤³¤Ç dbf ¤Ï°ÊÁ°¤Î gdbm_open ¤ÎÊÖ¤êÃͤǤ¢¤ë¡£ ÊÖ¤êÃͤϥǡ¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£

°Ê²¼¤Î 2 ¤Ä¤Î³°ÉôÊÑ¿ô¤ÏÌò¤ËΩ¤Ä¤³¤È¤À¤í¤¦¡£
 gdbm_errno ¤Ï gdbm ¤Î¥¨¥é¡¼¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤ò»ý¤Ä¡£ (gdbm.h ¤Ï¥¨¥é¡¼ÃͤÎÄêµÁ¤È gdbm_errno ¤ò³°ÉôÊÑ¿ô¤È¤¹¤ëÄêµÁ¤ò»ý¤Ä)

 gdbm_version ¤Ï¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Îʸ»úÎó¤ò»ý¤Ä¡£

¤â¤¦¾¯¤·¶½Ì£¿¼¤¤¤³¤È¤¬´ö¤Ä¤«¤¢¤ë¡£¤Þ¤º gdbm ¤Ï¡Ö·ä´Ö¤Î¤¢¤ë¡×¥Õ¥¡ ¥¤¥ë¤Ç¤Ï̵¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£¤¢¤Ê¤¿¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò UNIX ¤Î cp(1) ¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¥³¥Ô¡¼¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¡¢¤½¤Î¥³¥Ô¡¼½èÍý¤Î´Ö ¤Ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬³ÈÄ¥¤µ¤ì¤ë¤è¤¦¤Ê¤³¤È¤Ï¤Ê¤¤¡£¤µ¤é¤Ë¡¢UNIX ¤Ç¤¹¤Ç¤Ë»È ¤ï¤ì¤Æ¤¤¤ë dbm ¤Î¥³¥ó¥Ñ¥Á¥Ö¥ë¥â¡¼¥É¤¬Â¸ºß¤¹¤ë¡£¤³¤Î¥³¥ó¥Ñ¥Á¥Ö¥ë ¥â¡¼¥É¤Ç¤Ï¡¢gdbm ¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤Ï¥×¥í¥°¥é¥Þ¤Ë¼è¤Ã¤ÆÉ¬Í×¤Ç¤Ï ¤Ê¤¯¡¢°ìÅÙ¤Ë¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤À¤±¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£¥³¥ó¥Ñ¥Á¥Ö¥ë¥â¡¼¥É Á´¤Æ¤ÎÍøÍѼԤϥ饤¥¿¤È¸«¤Ê¤µ¤ì¤ë¡£¤â¤·¡¢ gdbm ¥Õ¥¡¥¤¥ë¤¬¥ê¡¼¥É ¥ª¥ó¥ê¡¼¤Ê¤é¤Ð¡¢¥é¥¤¥¿¤È¤·¤Æ¤Ï¼ºÇÔ¤·¡¢¥ê¡¼¥À¤È¤·¤Æ¥ª¡¼¥×¥ó¤·Ä¾¤·¤ò »î¤ß¤ë¡£datum ¹½Â¤ÂΤΤ¹¤Ù¤Æ¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢gdbm ¤¬³«Êü¤¹¤ë¤Ç¤¢¤í ¤¦¥Ç¡¼¥¿¤ò»Ø¤¹¡£¤³¤ì¤é¤Ï(ɸ½àŪ¤Ê UNIX¡¡¤Î dbm ¤¬¤¹¤ë¤è¤¦¤Ë) ÀŠŪ¥Ý¥¤¥ó¥¿¤È¤·¤Æ°·¤¦É¬Íפ¬¤¢¤ë¡£

 

¥ê¥ó¥¯

¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï¥³¥ó¥Ñ¥¤¥ë¹Ô¤ÎºÇ¸å¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ -lgdbm ¤ò»Ø Äꤹ¤ë¤³¤È¤ÇÍøÍѤµ¤ì¤ë¡£

       gcc -o prog prog.c -lgdbm
 

¥Ð¥°

 

´ØÏ¢¹àÌÜ

dbm, ndbm

 

Ãø¼Ô

by Philip A. Nelson and Jason Downs. Copyright (C) 1990 - 1999 Free Software Foundation, Inc.
  GDBM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version.
  GDBM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  You should have received a copy of the GNU General Public License along with GDBM; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  You may contact the original author by:

   e-mail:  phil@cs.wwu.edu

  us-mail:  Philip A. Nelson
Computer Science Department
Western Washington University
Bellingham, WA 98226
  You may contact the current maintainer by:

   e-mail:  downsj@downsj.com
 


 

Index

̾Á°
½ñ¼°
½ñ¼°
¥ê¥ó¥¯
¥Ð¥°
´ØÏ¢¹àÌÜ
Ãø¼Ô

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.