summaryrefslogtreecommitdiff
path: root/lib/libc/db/man/dbm.3
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/db/man/dbm.3')
-rw-r--r--lib/libc/db/man/dbm.3145
1 files changed, 145 insertions, 0 deletions
diff --git a/lib/libc/db/man/dbm.3 b/lib/libc/db/man/dbm.3
new file mode 100644
index 00000000000..799170cb12e
--- /dev/null
+++ b/lib/libc/db/man/dbm.3
@@ -0,0 +1,145 @@
+.\" $OpenBSD: dbm.3,v 1.1 1999/02/15 05:11:24 millert Exp $
+.\"
+.\" Copyright (c) 1999 Todd C. Miller <Todd.Miller@courtesan.com>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd Feb 14, 1999
+.Os OpenBSD
+.Dt DBM 3
+.Sh NAME
+.Nm dbm ,
+.Nm dbminit ,
+.Nm fetch ,
+.Nm store ,
+.Nm delete ,
+.Nm firstkey ,
+.Nm nextkey ,
+.Nm dbmclose
+.Nd database subroutines
+.Sh SYNOPSIS
+.Fd #include <dbm.h>
+.Ft int
+.Fn dbminit "const char *file"
+.Ft int
+.Fn dbmclose "void"
+.Ft datum
+.Fn fetch "datum key"
+.Ft int
+.Fn store "datum key" "datum content"
+.Ft int
+.Fn delete "datum key"
+.Ft datum
+.Fn firstkey "void"
+.Ft datum
+.Fn nextkey "datum key"
+.Sh DESCRIPTION
+These functions provide a dbm-compatible interface to the
+database access methods described in
+.Xr db 3 .
+Each unique record in the database is a key/content pair,
+the components of which may be any arbitrary binary data.
+The key and the content data are described by the
+.Ft datum
+data structure:
+.Bd -literal -offset indent
+typedef struct {
+ char *dptr;
+ int dsize;
+} datum
+.Ed
+.Pp
+The
+.Fn dbminit
+function is used to open a database in the file named by
+.Fa file ,
+suffixed with
+.Dv DBM_SUFFIX
+.Pq Sq Pa .db .
+The file is created if it does not already exist.
+.Pp
+Once the database is open,
+.Fn fetch
+is used to retrieve the data content associated with the key
+.Fa key .
+Similarly,
+.Fn store
+is used to store the
+.Fa content
+data with the key
+.Fa key .
+.Pp
+The
+.Fn delete
+function removes the key
+.Fa key
+and its associated content from the database.
+.Pp
+The functions
+.Fn firstkey
+and
+.Fn nextkey
+are used to iterate over all of the records in the database.
+Each record will be reached exactly once, but in no particular order.
+The
+.Fn firstkey
+function returns the first record of the database, and thereafter
+.Fn nextkey
+returns the following records.
+The following code traverses the entire database:
+.Bd -literal
+ for (key = firstkey(); key.dptr != NULL; key = nextkey(key))
+.Ed
+.Pp
+The behaviour of
+.Fn nextkey
+is undefined if the database is modified after a call to
+.Fn firstkey .
+.Pp
+The database is closed with the
+.Fn dbmclose
+function (you must close a database before opening a new one).
+.Ss Implementation notes
+The underlying database is a
+.Xr hash 3
+database with a
+bucket size of 4096,
+a filling factor of 40,
+default hashing function and cache size,
+and uses the host's native byte order.
+.Sh RETURN VALUES
+Upon successful completion, all functions that return
+.Ft int
+return a value of 0, otherwise a negative value is returned.
+.Pp
+Functions that return a
+.Ft datum
+indicate errors by setting the
+.Va dptr
+field set to
+.Dv NULL .
+.Sh SEE ALSO
+.Xr db 3 ,
+.Xr ndbm 3 ,
+.Xr hash 3