dbm(3)dbm(3)NAME
dbminit, fetch, store, delete, firstkey, nextkey, forder - Database
subroutines
SYNOPSIS
#include <dbm.h>
typedef struct {
char *dptr
int dzise
} datum;
int dbminit(
char *file ); int store(
datum key,
datum content ); int delete(
datum key ); datum firstkey(
void ); datum nextkey(
datum key ); long forder(
datum key );
LIBRARY
DBM Library (libdbm.a)
PARAMETERS
Specifies the database file. Specifies the key. Specifies a value
associated with the key parameter.
DESCRIPTION
The dbminit(), fetch(), store(), delete(), firstkey(), nextkey(), and
forder() functions maintain key/content pairs in a database. They are
obtained with the -ldbm loader option. The dbm library is provided only
for backwards compatibility, having been obsoleted by the ndbm func‐
tions in libc. See the manual page for ndbm for more information.
The dbminit(), fetch(), store(), delete(), firstkey(), nextkey(), and
forder() functions handle very large databases (up to a billion blocks)
and access a keyed item in one or two file system accesses. Arbitrary
binary data, as well as normal ASCII strings, are allowed.
The database is stored in two files. One file is a directory containing
a bit map and has as its suffix. The second file contains all data and
has as its suffix.
Before a database can be accessed, it must be opened by the dbminit()
function. At the time that dbminit() is called, the file.dir and
file.pag files must exist. (An empty database is created by creating
zero-length and files.)
Once open, the data stored under a key is accessed by the fetch() func‐
tion and data is placed under a key by the store() function. A key (and
its associated contents) is deleted by the delete() function. A linear
pass through all keys in a database may be made by use of the
firstkey() and nextkey() functions. The firstkey() function returns the
first key in the database. With any key, the nextkey() function returns
the next key in the database. The following code traverses the data‐
base: for (key = firstkey(); key.dptr != NULL; key = nextkey(key))
RETURN VALUES
Upon successful completion, the functions that return an int return 0
(zero). Otherwise, a negative number is returned. The functions that
return a datum indicate errors with a null (0) dptr.
SEE ALSO
Functions: ndbm(3)dbm(3)