dbminit, fetch, store, delete, firstkey, nextkey, forder -
Database subroutines
#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 );
DBM Library (libdbm.a)
Specifies the database file. Specifies the key. Specifies
a value associated with the key parameter.
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
functions 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() function 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 database: for
(key = firstkey(); key.dptr != NULL; key = nextkey(key))
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.
Functions: ndbm(3)
dbm(3)
[ Back ] |