OSDN Git Service

Import translated manuals from JM CVS Repository.
[linuxjm/jm.git] / manual / GNU_gdbm / release / man3 / gdbm.3
diff --git a/manual/GNU_gdbm/release/man3/gdbm.3 b/manual/GNU_gdbm/release/man3/gdbm.3
new file mode 100644 (file)
index 0000000..f1c6019
--- /dev/null
@@ -0,0 +1,596 @@
+.ds ve 1.8
+.TH GDBM 3 5/19/99
+.\" Japanese Version Copyright (c) 2000 Tsugikazu Shibata
+.\"         all rights reserved.
+.\" Translated Fri. August 29 23:32:00 JST 2000
+.\"         by Tsugikazu Shibata <ts@tsden.org>
+.SH Ì¾Á°
+GDBM - GNU¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥Þ¥Í¡¼¥¸¥ã¡£\fBdbm\fR ¤ª¤è¤Ó \fBndbm\fR
+¸ß´¹µ¡Ç½¤ò´Þ¤à¡£ (Version \*(ve.)
+
+.SH ½ñ¼°
+.B #include <gdbm.h>
+.PP
+.SM
+.B extern gdbm_error
+.br
+.B gdbm_errno
+.PP
+.B extern char
+.br
+.B *gdbm_version
+.PP
+.B GDBM_FILE
+.br
+.B gdbm_open (name, block_size, read_write, mode, fatal_func)
+.br
+.B char * name;
+.br
+.B int block_size, read_write, mode;
+.br
+.B void (*fatal_func) ();
+.PP
+.B void
+.br
+.B gdbm_close (dbf)
+.br
+.B GDBM_FILE dbf;
+.PP
+.B int
+.br
+.B gdbm_store (dbf, key, content, flag)
+.br
+.B GDBM_FILE dbf;
+.br
+.B datum key, content;
+.br
+.B int flag;
+.PP
+.B datum
+.br
+.B gdbm_fetch (dbf, key)
+.br
+.B GDBM_FILE dbf;
+.br
+.B datum key;
+.PP
+.B int
+.br
+.B gdbm_delete (dbf, key)
+.br
+.B GDBM_FILE dbf;
+.br
+.B datum key;
+.PP
+.B datum
+.br
+.B gdbm_firstkey (dbf)
+.br
+.B GDBM_FILE dbf;
+.PP
+.B datum
+.br
+.B gdbm_nextkey (dbf, key)
+.br
+.B GDBM_FILE dbf;
+.br
+.B datum key;
+.PP
+.B int
+.br
+.B gdbm_reorganize (dbf)
+.br
+.B GDBM_FILE dbf;
+.PP
+.B void
+.br
+.B gdbm_sync (dbf)
+.br
+.B GDBM_FILE dbf;
+.PP
+.B int
+.br
+.B gdbm_exists (dbf, key)
+.br
+.B GDBM_FILE dbf;
+.br
+.B datum key;
+.PP
+.B char *
+.br
+.B gdbm_strerror (errno)
+.br
+.B gdbm_error errno;
+.PP
+.B int
+.br
+.B gdbm_setopt (dbf, option, value, size)
+.br
+.B GDBM_FILE dbf;
+.br
+.B int option;
+.br
+.B int *value;
+.br
+.B int size;
+.PP
+.B int
+.br
+.B gdbm_fdesc (dbf)
+.br
+.B GDBM_FILE dbf;
+.PP
+.PP
+.B DBM Compatability routines:
+.PP
+.B #include <dbm.h>
+.PP
+.SM
+.B int
+.br
+.B dbminit (name)
+.br
+.B char *name;
+.PP
+.B int
+.br
+.B store (key, content)
+.br
+.B datum key, content;
+.PP
+.B datum
+.br
+.B fetch (key)
+.br
+.B datum key;
+.PP
+.B int
+.br
+.B delete (key)
+.br
+.B datum key;
+.PP
+.B datum
+.br
+.B firstkey ()
+.PP
+.B datum
+.br
+.B nextkey (key)
+.br
+.B datum key;
+.PP
+.B int
+.br
+.B dbmclose ()
+.PP
+.PP
+.B NDBM Compatability routines:
+.PP
+.B #include <ndbm.h>
+.PP
+.SM
+.B DBM
+.br
+.B *dbm_open (name, flags, mode)
+.br
+.B char *name;
+.br
+.B int flags, mode;
+.PP
+.B void
+.br
+.B dbm_close (file)
+.br
+.B DBM *file;
+.PP
+.B datum
+.br
+.B dbm_fetch (file, key)
+.br
+.B DBM *file;
+.br
+.B datum key;
+.PP
+.B int
+.br
+.B dbm_store (file, key, content, flags)
+.br
+.B DBM *file;
+.br
+.B datum key, content;
+.br
+.B int flags;
+.PP
+.B int
+.br
+.B dbm_delete (file, key)
+.br
+.B DBM *file;
+.br
+.B datum key;
+.PP
+.B datum
+.br
+.B dbm_firstkey (file)
+.br
+.B DBM *file;
+.PP
+.B datum
+.br
+.B dbm_nextkey (file)
+.br
+.B DBM *file;
+.PP
+.B int
+.br
+.B dbm_error (file)
+.br
+.B DBM *file;
+.PP
+.B int
+.br
+.B dbm_clearerr (file)
+.br
+.B DBM *file;
+.PP
+.B int
+.br
+.B dbm_pagfno (file)
+.br
+.B DBM *file;
+.PP
+.B int
+.br
+.B dbm_dirfno (file)
+.br
+.B DBM *file;
+.PP
+.B int
+.br
+.B dbm_rdonly (file)
+.br
+.B DBM *file;
+
+
+.SH ÀâÌÀ
+GNU dbm ¤Ï¡¢¥­¡¼¤È¥Ç¡¼¥¿¤Î¥Ú¥¢¤ò´Þ¤ó¤À¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ò¼è¤ê°·¤¦
+¥ë¡¼¥Á¥ó·²¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡£
+Ä󶡤µ¤ì¤ë¥¢¥¯¥»¥¹¤È¤·¤Æ¤Ï¡¢¥­¡¼¤Ë¤è¤ë³ÊǼ¡¢¥­¡¼¤Ë¤è¤ë¼è¤ê½Ð¤·¡¢
+¥­¡¼¤Ë¤è¤ëºï½ü¤Î¾¡¢¤¹¤Ù¤Æ¤Î¥­¡¼¤ËÅϤ륽¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤²£ÃÇŪ¤Ê
+¥¢¥¯¥»¥¹¤¬¤¢¤ë¡£
+°ì¤Ä¤Î¥×¥í¥»¥¹¤«¤é¤ÏÊ£¿ô¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òƱ»þ¤ËÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+
+gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¥×¥í¥»¥¹¤Ï¡¢¡Ö¥ê¡¼¥À¡×¤Þ¤¿¤Ï¡Ö¥é¥¤¥¿¡×
+¤È¸Æ¤Ð¤ì¤ë¡£
+1 ¤Ä¤Î gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¥é¥¤¥¿¤Ï 1 ¤Ä¤À¤±¤À¤¬¡¢
+¥ê¡¼¥À¤ÏÊ£¿ô¤¬ 1 ¤Ä¤Î gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+
+¥ê¡¼¥À¤È¥é¥¤¥¿¤ÏƱ»þ¤ËƱ¤¸¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
+gdbm ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¼ê³¤­¤Ï¡§
+
+¡¡  GDBM_FILE dbf;
+   dbf = gdbm_open ( name, block_size, read_write, mode, fatal_func )
+
+\fIname\fR ¤Ï¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë¡£(´°Á´¤Ê̾Á°¡¢gdbm ¤Ï¤³¤Î̾Á°¤Ë
+ʸ»úÎó¤òÉÕ¤±²Ã¤¨¤ë¤è¤¦¤Ê¤³¤È¤Ï¤·¤Ê¤¤)
+\fIblock_size\fR ¤Ï¥Ç¥£¥¹¥¯¤«¤é¥á¥â¥ê¤Ø 1 ²ó¤ËžÁ÷¤µ¤ì¤ë¥µ¥¤¥º¤Ç¤¢¤ë¡£
+¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¾ì¹ç°Ê³°¤Ï̵»ë¤µ¤ì¤ë¡£ºÇ¾®¥µ¥¤¥º
+¤Ï 512 ¤Ç¤¢¤ë¡£
+512 ¤è¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ë¤Ï, gdbm ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ¹¤ë stat
+¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò»ÈÍѤ¹¤ë¡£
+\fIread_write\fR ¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ë¡£
+.br
+.B GDBM_READER
+¥ê¡¼¥À
+.br
+.B GDBM_WRITER
+¥é¥¤¥¿
+.br
+.B GDBM_WRCREAT
+¥é¥¤¥¿ - ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬Â¸ºß¤·¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
+.br
+.B GDBM_NEWDB
+¥é¥¤¥¿ - ¤¹¤Ç¤Ë¸ºß¤·¤Æ¤â¿·¤·¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤¹¤ë
+.br
+ºÇ¸å¤Î 3 ¤Ä¤Ë¤Ä¤¤¤Æ¤Ï (¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥é¥¤¥¿) \fIread_write\fR ¤ËÂФ·¤Æ
+°Ê²¼¤ò¥Ó¥Ã¥È¤Î OR ¤Ë¤è¤êÄɲäǤ­¤ë:
+.B GDBM_SYNC
+¤Ï¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁàºî¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤¹¤ë¡¢¤Þ¤¿
+.B GDBM_NOLOCK
+¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë¥é¥¤¥Ö¥é¥ê¤«¤é¤Î¥í¥Ã¥¯Æ°ºî¤ò¹Ô¤ï¤Ê¤¤¡£
+¥ª¥×¥·¥ç¥ó
+.B GDBM_FAST
+¤Ï gdbm ¤Î´ûÄêÆ°ºî¤¬ no-sync ¥â¡¼¥É¤Ë¤Ê¤Ã¤¿¤¿¤á¤Ë¤â¤¦»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£
+.br
+\fImode\fR ¤Ï¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤Ç¤¢¤ë (\fBchmod(2)\fR ¤ª¤è¤Ó \fBopen(2)\fR ¤ò
+»²¾È)¡£\fI(*fatal_func) ()\fR ¤Ï dbm ¤¬Ã×̿Ū¥¨¥é¡¼¤ò¸¡½Ð¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤¹
+´Ø¿ô¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ø¤ÎÍ£°ì¤Î¥Ñ¥é¥á¡¼¥¿¤Ïʸ»úÎó¤Ç¤¢¤ë¡£
+ÃÍ 0 ¤¬»ØÄꤵ¤ì¤ë¤È¡¢gdbm ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£
+
+ÊÖ¤êÃÍ \fIdbf\fR ¤Ï¡¢¤½¤Î gdbm ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¾¤Î¤¹¤Ù¤Æ¤Î¥ë¡¼¥Á¥ó
+¤ËɬÍפʥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ NULL ¥Ý¥¤¥ó¥¿¤¬Ê֤俾ì¹ç¡¢\fBgdbm_open\fR ¤Ï
+À®¸ù¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£
+gdbm ¤Î¥¨¥é¡¼¤Ï  \fIgdbm_errno\fR ¤Ë¡¢¥·¥¹¥Æ¥à¤Î¥¨¥é¡¼¤Ï \fIerrno\fR 
+¤Ë³ÊǼ¤µ¤ì¤ë¡£(¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï gdbmerrno.h ¤ò»²¾È)
+
+°Ê²¼¤Î¤¹¤Ù¤Æ¤Î¥³¡¼¥ë¤Ë¤ª¤¤¤Æ¤Ï¡¢
+¥Ñ¥é¥á¡¼¥¿ \fIdbf\fR ¤Ï \fBgdbm_open\fR ¤«¤é
+Ê֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
+¤É¤ó¤Ê¥Õ¥¡¥¤¥ë¤Ç¤â¥ª¡¼¥×¥ó¤·¤¿¤â¤Î¤ò¥¯¥í¡¼¥º¤¹¤ë¤³¤È¤Ï½ÅÍפǤ¢¤ë¡£
+¥¯¥í¡¼¥º¤Ï¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ê¡¼¥À¿ô¡¿¥é¥¤¥¿¿ô¤ò¹¹¿·¤¹¤ë¡£
+¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¹Ô¤¦¡£
+
+   gdbm_close (dbf);
+
+¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï 3 ¤Ä¤Î¼ç¤Ê¥ë¡¼¥Á¥ó¤Ë¤è¤Ã¤ÆÍøÍѤǤ­¤ë¡£ºÇ½é¤Ï¥Ç¡¼¥¿¤ò
+¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
+
+
+   ret = gdbm_store ( dbf, key, content, flag )
+
+
+\fIdbf\fR ¤Ï \fBgdbm_open\fR ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
+\fIkey\fR ¤Ï¥­¡¼¥Ç¡¼¥¿¤Ç¡¢\fIcontent\fR ¤Ï \fIkey\fR ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿
+¥Ç¡¼¥¿¤Ç¤¢¤ë¡£
+\fIflag\fR ¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
+.br
+.B GDBM_INSERT
+ÁÞÆþ¤Î¤ß¡£¥­¡¼¤¬Â¸ºß¤¹¤ì¤Ð¥¨¥é¡¼¤È¤Ê¤ë¡£
+.br
+.B GDBM_REPLACE
+¥­¡¼¤¬Â¸ºß¤¹¤ì¤ÐÆâÍƤò¹¹¿·¤¹¤ë¡£
+
+¥ê¡¼¥À¤¬ \fBgdbm_store\fR ¤ò¥³¡¼¥ë¤·¤¿¾ì¹ç¡¢ÊÖ¤êÃͤϠ-1 ¤È¤Ê¤ë¡£
+GDBM_INSERT ¤¬»ØÄꤵ¤ì¤¿»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë \fIkey\fR ¤¬Â¸ºß¤¹¤ë¤È¡¢
+ÊÖ¤êÃͤϠ1 ¤Ç¤¢¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÊÖ¤êÃͤϠ0 ¤Ç¤¢¤ë¡£
+
+\fIÃí°Õ: ´û¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¸ºß¤¹¤ë¥­¡¼¤ò»ØÄꤷ¤Æ³ÊǼ¤¹¤ë¾ì¹ç¡¢
+GDBM_REPLACE¤Ç¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢gdbm ¤Ï¸Å¤¤¥Ç¡¼¥¿¤ò
+¿·¤·¤¤¥Ç¡¼¥¿¤ÇÃÖ¤­´¹¤¨¤ë¡£
+Ʊ¤¸¥­¡¼¤Ç 2 ¤Ä¤Î¥Ç¡¼¥¿¡¦¥¢¥¤¥Æ¥à¤òÆÀ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤·¡¢
+¤Þ¤¿ gdbm_store ¤¬¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤â¤Ê¤¤¡£
+
+Ãí°Õ: gdbm ¤Î¥µ¥¤¥º¤Ï¡¢dbm ¤ä ndbm ¤È°Û¤Ê¤êÀ©¸Â¤µ¤ì¤Ê¤¤¡£
+¥Ç¡¼¥¿¤ÏɬÍפʤÀ¤±Â礭¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+\fR
+
+¥Ç¡¼¥¿¤ò¸¡º÷¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë:
+
+  content = gdbm_fetch ( dbf, key )
+
+\fIdbf\fR ¤Ï \fBgdbm_open\fR ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
+\fIkey\fR ¤Ï¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£
+
+ÊÖ¤êÃͤΠ\fIdptr\fR ¤¬ NULL ¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤Ï¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£
+¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬Ê֤롣
+\fIdptr\fR ¤Îµ­²±¶õ´Ö¤Ï \fBmalloc(3C)\fR ¤Ë¤è¤ê³ÎÊݤµ¤ì¤ë¡£ 
+\fBgdbm\fI ¤Ï¼«Æ°Åª¤Ë¤³¤Î¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¤³¤È¤Ï¤·¤Ê¤¤¡£
+ɬÍפÎ̵¤¯¤Ê¤Ã¤¿Îΰè¤ò²òÊü¤¹¤ë¤Î¤Ï¥×¥í¥°¥é¥Þ¤ÎÀÕǤ¤Ç¤¢¤ë¡£\fR
+
+¥Ç¡¼¥¿¤ò»²¾È¤»¤º¤Ë¡¢¸¡º÷¤À¤±¤¹¤ë¾ì¹ç¤Ë¤Ï¡§
+
+   ret = gdbm_exists ( dbf, key )
+
+\fIdbf\fR ¤Ï \fBgdbm_open\fR ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
+\fIkey\fR ¤Ï¸¡º÷¤·¤¿¤¤¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£
+
+¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ë \fIkey\fR ¤¬¸«¤Ä¤«¤ì¤Ð¡¢ÊÖ¤êÃÍ \fIret\fR ¤Ï true ¤Ç¤¢¤ë¡£
+.\" If nothing appropiate is found, \fIret\fR will be false.
+²¿¤âÂбþ¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð \fIret\fR ¤Ï false ¤Ç¤¢¤ë¡£
+
+\fBgdbm_fetch\fR ¤Ç¤Ï¥á¥â¥ê³ÎÊݤ¬¹Ô¤ï¤ì¤ë¤¬¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï¤½¤ì¤ò¤·¤Ê¤¤
+¤Î¤Ç¡¢¥ì¥³¡¼¥É¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤ò¤¹¤ë»þ¤ËÌò¤ËΩ¤Ä¡£
+
+¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤¢¤ë¥Ç¡¼¥¿¤òºï½ü¤¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë:
+
+   ret = gdbm_delete ( dbf, key )
+
+\fIdbf\fR ¤Ï \fBgdbm_open\fR ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£\fIkey\fR ¤Ï
+ºï½ü¤·¤¿¤¤¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£
+
+¥¢¥¤¥Æ¥à¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¤ê¡¢Í׵ᤷ¤¿¤Î¤¬¥ê¡¼¥À¤À¤Ã¤¿¾ì¹ç¡¢
+ÊÖ¤êÃͤϠ-1 ¤Ç¤¢¤ë¡£
+ºï½ü¤ËÀ®¸ù¤¹¤ì¤ÐÊÖ¤êÃͤϠ0 ¤Ç¤¢¤ë¡£
+
+¼¡¤Î 2 ¤Ä¤Î¥ë¡¼¥Á¥ó¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Ãæ¤Î¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£
+¥¢¥¯¥»¥¹¤Ï¥­¡¼½ç¤Ç¤Ï¤Ê¤¤¤¬¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ç¤¹¤Ù¤Æ¤Î¥­¡¼¤Ë³Æ 1 ²ó
+¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Æ¤¤¤ë¡£(¥¢¥¯¥»¥¹½ç½ø¤Ï¥Ï¥Ã¥·¥åÃͤνç¤Ë¤Ê¤ë¡£)
+
+   key = gdbm_firstkey ( dbf )
+
+   nextkey = gdbm_nextkey ( dbf, key )
+
+\fIdbf\fR ¤Ï \fBgdbm_open\fR ¤«¤éÊ֤äƤ­¤¿¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£\fIkey\fR ¤Ï
+¥­¡¼¥Ç¡¼¥¿¤Ç¤¢¤ë¡£
+
+ÊÖ¤êÃͤϤɤÁ¤é¤â \fBdatum\fR ·¿¤Ç¤¢¤ë¡£ÊÖ¤êÃͤΠ\fIdptr\fR Í×ÁǤ¬ NULL
+¤Î¾ì¹ç¡¢ºÇ½é¤Î¥­¡¼¤Þ¤¿¤Ï¼¡¤Î¥­¡¼¤¬¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£
+ÊÖ¤êÃͤΠ\fIdptr\fR Í×ÁǤ¬»Ø¤·¤Æ¤¤¤ë¤Î¤Ï \fBmalloc(3C)\fR
+¤Ë¤è¤ê³ÎÊݤµ¤ì¤¿¥Ç¡¼¥¿¤Ç¤¢¤ê¡¢\fBgdbm\fR ¤Ï free ¤·¤Æ¤Ï¤¯¤ì¤Ê¤¤¤³¤È¤Ë
+¤â¤¦°ìÅÙÃí°Õ¤¹¤ë¤³¤È¡£
+
+¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Ç»²¾È¤¹¤ë¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤¿¡£
+¤¿¤È¤¨¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀµÅöÀ­¤ò³Îǧ¤·¤¿¤ê¤¹¤ë¤è¤¦¤ÊÌÜŪ¤Ç¡£
+
+¥Õ¥¡¥¤¥ë¤Ø¤Î¡Ö»²¾È¡×¤Ï¡Ö¥Ï¥Ã¥·¥å¡¦¥Æ¡¼¥Ö¥ë¡×¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£
+\fIgdbm_delete\fR ¤Ï¥Ï¥Ã¥·¥å¡¦¥Æ¡¼¥Ö¥ë¤òºÆ¹½À®¤·¤Æ¡¢¡Ö¸«¤Ä¤±¤é¤ì¤ë¤³¤È¤Î¤Ê¤¤¡×
+¥¢¥¤¥Æ¥à¤¬¥Æ¡¼¥Ö¥ë¤ÎÃæ¤ÇÊüÃÖ¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¡¢¤¹¤Ù¤Æ¤Î¶¥¹ç¤ò³Îǧ¤¹¤ë¡£
+¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤Î¼ÂÂΤËÊѹ¹¤ò²Ã¤¨¤Ê¤«¤Ã¤¿¤È¤·¤Æ¤â¡¢¥ª¥ê¥¸¥Ê¥ë¤Î¥­¡¼¤Î
+½ç½ø¤ÏÊݾڤµ¤ì¤Ê¤¤¡£
+
+.\" It is possible that some key will not be visited if a loop like
+.\" the following is executed:
+°Ê²¼¤Î¥ë¡¼¥×¤¬¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¡¢¤¤¤¯¤Ä¤«¤Î¥­¡¼¤¬¸«¤Ä¤±¤é¤ì
+¤Ê¤¤¤³¤È¤¬µ¯¤³¤êÆÀ¤ë¡£
+
+
+    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 )
+
+¤â¤·¤¢¤Ê¤¿¤¬¤¿¤¯¤µ¤ó¤Îºï½ü¤ò¹Ô¤¤¡¢\fBgdbm\fR ¥Õ¥¡¥¤¥ë¤¬»È¤Ã¤Æ¤¤¤ë
+¥¹¥Ú¡¼¥¹¤ò¾®¤µ¤¯¤·¤¿¤¤¤È»×¤¦¤Ê¤é¤Ð¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÆ¹½À®¤ò¹Ô¤¦¡£
+\fBgdbm\fR ¤Ï¤³¤ÎºÆ¹½À®°Ê³°¤Ç \fBgdbm\fR ¤¬»È¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ò
+¾®¤µ¤¯¤¹¤ë¤³¤È¤Ï̵¤¤¡£(ºï½ü¤µ¤ì¤¿¥¹¥Ú¡¼¥¹¤ÏºÆÍøÍѤµ¤ì¤ë)
+
+¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ GDBM_SYNC ¥Õ¥é¥°ÉÕ¤­¤Ç open ¤µ¤ì¤Ê¤¤¸Â¤ê¡¢gdbm ¤Ï¼¡¤ÎÆ°ºî¤ò
+·Ñ³¤¹¤ëÁ°¤Ë¡¢write ¤¬¥Ç¥£¥¹¥¯¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ë¤Î¤òÂԤĤ褦¤Ê¤³¤È¤Ï¤·¤Ê¤¤¡£
+¼¡¤Î¥ë¡¼¥Á¥ó¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤òʪÍýŪ¤Ë¥Ç¥£¥¹¥¯¤Ë½ñ¤­½Ð¤¹¤³¤È¤òÊݾڤ¹¤ë¡£
+
+   gdbm_sync ( dbf )
+
+¤³¤ì¤Ï¥á¥¤¥ó¥á¥â¥ê¤Î¾õÂÖ¤ò¥Ç¥£¥¹¥¯¤Î¾õÂÖ¤ÈƱ´ü¤µ¤»¤ë¤Þ¤Ç¤ÏÌá¤Ã¤ÆÍè¤Ê¤¤¡£
+
+\fBgdbm\fR ¤Î¥¨¥é¡¼¥³¡¼¥É¤ò±Ñʸ¤Î¥Æ¥­¥¹¥È¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥ë¡¼¥Á¥ó
+¤òÍøÍѤ¹¤ë¡£
+
+   ret = gdbm_strerror ( errno )
+
+
+¤³¤³¤Ç \fIerrno\fR ¤Ï \fIgdbm_error\fR ·¿¤Ç¤¢¤ê¡¢Ä̾ï¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô
+¤Î \fIgdbm_errno\fR ¤Ç¤¢¤ë¡£Âбþ¤¹¤ë¥Õ¥ì¡¼¥º¤¬Ê֤äƤ¯¤ë¡£
+
+\fBgdbm\fR ¤Ï´û¤Ë open ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Ç¤­¤ë
+µ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£
+
+   ret = gdbm_setopt ( dbf, option, value, size )
+
+¤³¤³¤Ç¡¢\fIdbf\fR ¤ÏľÁ°¤Î \fBgdbm_open\fR ¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢
+\fIoption\fR ¤ÏÀßÄꤷ¤¿¤¤¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£¸½ºß¤ÎÀµ¤·¤¤¥ª¥×¥·¥ç¥ó¤Ï¡§
+
+\fBGDBM_CACHESIZE\fR - ÆâÉô¤Î bucket ¥­¥ã¥Ã¥·¥å¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£
+¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï \fIGDBM_FILE\fR ¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë°ìÅÙ¤À¤±ÀßÄê¤Ç¤­¡¢
+¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ½é¤Î¥¢¥¯¥»¥¹»þ¤Ë¼«Æ°Åª¤Ë 100 ¤¬ÀßÄꤵ¤ì¤ë¡£
+
+\fBGDBM_FASTMODE\fR - \fBfast mode\fR ¤Î on, off ¤ò»ØÄꤹ¤ë¡£
+\fBfast mode\fR ¤Ï¤¹¤Ç¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Æ¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë
+ÂФ·¤Æ¥È¥°¥ë (on, off) ¤Ç¤­¤ë¡£\fIvalue\fR (°Ê²¼»²¾È) ¤Ï TRUE ¤« FALSE 
+¤¬ÀßÄê¤Ç¤­¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤¦»È¤ï¤ì¤Ê¤¤¡£
+
+\fBGDBM_SYNCMODE\fR - ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎƱ´ü½èÍý¤ò on, off ¤¹¤ë¡£¤³¤Î
+ÀßÄê¤Î¥Ç¥Õ¥©¥ë¥È¤Ï off ¤Ç¤¢¤ë¡£\fIvalue\fR (°Ê²¼»²¾È) ¤Ï TRUE ¤« FALSE 
+¤ò»ØÄꤹ¤ë¡£
+
+\fBGDBM_CENTFREE\fR - \fBcentral ¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯¥×¡¼¥ë\fR ¤ò on, off ¤¹¤ë¡£
+¥Ç¥Õ¥©¥ë¥È¤Ï off ¤Ç¤¢¤ê¡¢¤³¤ì¤Ï°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î \fBgdbm\fR ¤Î¥Õ¥ê¡¼
+¥Ö¥í¥Ã¥¯¤Î¼è¤ê°·¤¤¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤â¤·¡¢ÀßÄꤵ¤ì¤ë¤È¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤½
+¤Î¸å¤Ï¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯¤Ï¥°¥í¡¼¥Ð¥ë¥×¡¼¥ë¤Ë¤ª¤«¤ì¡¢(ÍýÏÀŪ¤Ë¤Ï) ¤è¤ê¿¤¯¤Î
+¥Õ¥¡¥¤¥ë¥¹¥Ú¡¼¥¹¤¬¤è¤êÁ᤯ºÆÍøÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£
+\fIvalue\fR (°Ê²¼»²¾È) ¤Ï TRUE ¤« FALSE ¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£
+Ãí°Õ¡§¤³¤Îµ¡Ç½¤Ï¤Þ¤À¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£
+
+\fBGDBM_COALESCEBLKS\fR - ¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯¥Þ¡¼¥¸¥ó¥°¤Î on, off ¤òÀßÄê
+¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï off ¤ÇÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î \fBgdbm\fR ¤Î¥Õ¥ê¡¼¥Ö¥í¥Ã¥¯
+¤Î°·¤¤¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤â¤·¡¢ÀßÄꤵ¤ì¤ë¤È¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÉÕ¶á¤Ë¤¢¤ë¥Õ¥ê¡¼
+¥Ö¥í¥Ã¥¯¤ò¥Þ¡¼¥¸¤¹¤ë¡£¤³¤ì¤Ï ÆäË\fBGDBM_CENTFREE\fR ¤È°ì½ï¤Ë»È¤ï¤ì¤¿
+¤È¤·¤Æ¤â »þ´Ö¤È CPU ¤Î¤«¤«¤ë½èÍý¤Ë¤Ê¤ë¡£\fIvalue\fR (°Ê²¼»²¾È) ¤Ï TRUE 
+¤« FALSE ¤òÀßÄꤹ¤ë¤Ù¤­¤Ç¤¢¤ë¡£
+Ãí°Õ¡§¤³¤Îµ¡Ç½¤Ï¤Þ¤À¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£
+
+\fIvalue\fR ¤Ï \fIoption\fR ¤ËÀßÄꤹ¤ëÃͤǤ¢¤ê¡¢integer ¤Ø¤Î¥Ý¥¤¥ó¥¿
+¤Ç¤¢¤ë¡£ \fIsize\fR ¤Ï \fIvalue\fR ¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥È¤µ¤ì¤ë¥Ç¡¼¥¿¤Î
+¥µ¥¤¥º¤Ç¤¢¤ë¡£ÊÖ¤êÃͤϠ¼ºÇÔ¤·¤¿¾ì¹ç -1 ¤Ë¤Ê¤ê¡¢À®¸ù¤·¤¿¤é 0 ¤Ë¤Ê¤ë¡£
+¼ºÇԤξì¹ç¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î \fIgdbm_errno\fR ¤Ë¤ÏÃͤ¬ÀßÄꤵ¤ì¤ë¡£
+
+Î㤨¤Ð¡¢\fBgdbm_open\fR ¤Ç¥ª¡¼¥×¥ó¤·¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¢¥¯¥»¥¹¤¹¤ëÁ°¤Ë¡¢
+¥­¥ã¥Ã¥·¥å¤È¤·¤Æ 10 ¤ò»È¤¦¤è¤¦¤ËÀßÄꤹ¤ë¾ì¹ç¡¢°Ê²¼¤Î¥³¡¼¥É¤¬ÍøÍѤǤ­¤ë¡§
+
+   int value = 10;
+
+   ret = gdbm_setopt( dbf, GDBM_CACHESIZE, &value, sizeof(int));
+
+
+¤â¤·¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ \fBGDBM_NOLOCK\fR ¥Õ¥é¥°ÉÕ¤­¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¾ì¹ç¡¢
+¥æ¡¼¥¶¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¤Æ¡¢Î㤨¤ÐÊ£¿ô¤Î¥é¥¤¥¿Áàºî¤òƱ°ì¤Î¥Õ¥¡¥¤¥ë
+¤ËÂФ·¤Æ¹Ô¤¦¤è¤¦¤Ê¡¢¼«Ê¬¤ÎÆȼ«¤Î¥Õ¥¡¥¤¥ë¥í¥Ã¥­¥ó¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡¢
+
+¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¡¢\fIgdbm_fdesc\fR ¥ë¡¼¥Á¥ó¤¬Ä󶡤µ¤ì¤ë¡£
+
+   ret = gdbm_fdesc ( dbf )
+
+¤³¤³¤Ç  \fIdbf\fR ¤Ï°ÊÁ°¤Î \fBgdbm_open\fR ¤ÎÊÖ¤êÃͤǤ¢¤ë¡£
+ÊÖ¤êÃͤϥǡ¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£
+
+
+°Ê²¼¤Î 2 ¤Ä¤Î³°ÉôÊÑ¿ô¤ÏÌò¤ËΩ¤Ä¤³¤È¤À¤í¤¦¡£
+\fIgdbm_errno\fR ¤Ï gdbm ¤Î¥¨¥é¡¼¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤ò»ý¤Ä¡£
+(gdbm.h ¤Ï¥¨¥é¡¼ÃͤÎÄêµÁ¤È gdbm_errno ¤ò³°ÉôÊÑ¿ô¤È¤¹¤ëÄêµÁ¤ò»ý¤Ä)
+.br
+\fIgdbm_version\fR ¤Ï¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Îʸ»úÎó¤ò»ý¤Ä¡£
+
+
+¤â¤¦¾¯¤·¶½Ì£¿¼¤¤¤³¤È¤¬´ö¤Ä¤«¤¢¤ë¡£¤Þ¤º \fBgdbm\fR ¤Ï¡Ö·ä´Ö¤Î¤¢¤ë¡×
+¥Õ¥¡¥¤¥ë¤Ç¤Ï̵¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£¤¢¤Ê¤¿¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò UNIX ¤Î
+\fBcp(1)\fR ¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¥³¥Ô¡¼¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¡¢¤½¤Î¥³¥Ô¡¼½èÍý¤Î´Ö
+¤Ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬³ÈÄ¥¤µ¤ì¤ë¤è¤¦¤Ê¤³¤È¤Ï¤Ê¤¤¡£¤µ¤é¤Ë¡¢UNIX ¤Ç¤¹¤Ç¤Ë»È
+¤ï¤ì¤Æ¤¤¤ë \fBdbm\fR ¤Î¥³¥ó¥Ñ¥Á¥Ö¥ë¥â¡¼¥É¤¬Â¸ºß¤¹¤ë¡£¤³¤Î¥³¥ó¥Ñ¥Á¥Ö¥ë
+¥â¡¼¥É¤Ç¤Ï¡¢\fRgdbm\fR ¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤Ï¥×¥í¥°¥é¥Þ¤Ë¼è¤Ã¤ÆɬÍפǤÏ
+¤Ê¤¯¡¢°ìÅ٤ˤϠ1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤À¤±¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£¥³¥ó¥Ñ¥Á¥Ö¥ë¥â¡¼¥É
+Á´¤Æ¤ÎÍøÍѼԤϥ饤¥¿¤È¸«¤Ê¤µ¤ì¤ë¡£¤â¤·¡¢\fBgdbm\fR ¥Õ¥¡¥¤¥ë¤¬¥ê¡¼¥É
+¥ª¥ó¥ê¡¼¤Ê¤é¤Ð¡¢¥é¥¤¥¿¤È¤·¤Æ¤Ï¼ºÇÔ¤·¡¢¥ê¡¼¥À¤È¤·¤Æ¥ª¡¼¥×¥ó¤·Ä¾¤·¤ò
+»î¤ß¤ë¡£datum ¹½Â¤ÂΤΤ¹¤Ù¤Æ¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢\fBgdbm\fR ¤¬²òÊü¤¹¤ë¤Ç¤¢¤í¤¦
+¥Ç¡¼¥¿¤ò»Ø¤¹¡£¤³¤ì¤é¤Ï (ɸ½àŪ¤Ê UNIX¡¡¤Î \fBdbm\fR ¤¬¤¹¤ë¤è¤¦¤Ë) 
+ÀÅŪ¥Ý¥¤¥ó¥¿¤È¤·¤Æ°·¤¦É¬Íפ¬¤¢¤ë¡£
+
+
+
+.SH ¥ê¥ó¥¯
+¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï¥³¥ó¥Ñ¥¤¥ë¹Ô¤ÎºÇ¸å¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ \fI-lgdbm\fR ¤ò
+»ØÄꤹ¤ë¤³¤È¤ÇÍøÍѤµ¤ì¤ë¡£
+
+.sp
+       gcc -o prog prog.c -lgdbm
+.SH ¥Ð¥°
+
+
+.SH ´ØÏ¢¹àÌÜ
+dbm, ndbm
+
+.SH Ãø¼Ô
+
+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:
+.br
+   e-mail:  phil@cs.wwu.edu
+.br
+  us-mail:  Philip A. Nelson
+.br
+Computer Science Department
+.br
+Western Washington University
+.br
+Bellingham, WA 98226
+You may contact the current maintainer by:
+.br
+   e-mail:  downsj@downsj.com