The function gdbm_store
inserts or replaces records in the database.
The parameters are:
The pointer returned by gdbm_open
.
The search key.
The data to be associated with the key.
Defines the action to take when the key is already in the database. The value
GDBM_REPLACE
(defined in gdbm.h) asks that the old data
be replaced by the new content. The value GDBM_INSERT
asks that an error be returned and no action taken if the key
already exists.
This function can return the following values:
Success. The value of content is keyed by key in the database.
The item was not stored in the database because the caller was not an
official writer or either key or content have a
NULL
dptr
field.
Both key and content must have the dptr
field be a
non-NULL
value. Since a NULL
dptr
field is used by
other functions to indicate an error, it cannot be valid data.
The item was not stored because the argument flag was
GDBM_INSERT
and the key was already in the database.
If you store data for a key that is already in the data base,
gdbm
replaces the old data with the new data if called with
GDBM_REPLACE
. You do not get two data items for the same
key
and you do not get an error from gdbm_store
.
The size of datum in gdbm
is restricted only by the maximum
value for an object of type int
(type of the dsize
member of
datum
).