Chapter 25 |
The dbm library: access to NDBM databases |
|
The dbm library provides access to NDBM databases under Unix.
NDBM databases maintain key/data associations, where both the key and
the data are arbitrary strings. They support fairly large databases
(several gigabytes) and can retrieve a keyed item in one or two file
system accesses. Refer to the Unix manual pages for more information.
Unix:
Programs that use the dbm library must be linked as follows:
ocamlc other options dbm.cma other files
ocamlopt other options dbm.cmxa other files
For interactive use of the dbm library, do:
ocamlmktop -o mytop dbm.cma
./mytop
or (if dynamic linking of C libraries is supported on your platform),
start ocaml and type #load "dbm.cma";;.
Windows:
This library is not available.
25.1 |
Module Dbm: interface to the NDBM database |
|
type t
The type of file descriptors opened on NDBM databases.
type open_flag =
Dbm_rdonly | Dbm_wronly | Dbm_rdwr | Dbm_create
Flags for opening a database (see opendbm
).
exception Dbm_error of string
Raised by the following functions when an error is encountered.
val opendbm : string -> open_flag list -> int -> t
Open a descriptor on an NDBM database. The first argument is
the name of the database (without the .dir
and .pag
suffixes).
The second argument is a list of flags: Dbm_rdonly
opens
the database for reading only, Dbm_wronly
for writing only,
Dbm_rdwr
for reading and writing; Dbm_create
causes the
database to be created if it does not already exist.
The third argument is the permissions to give to the database
files, if the database is created.
val close : t -> unit
Close the given descriptor.
val find : t -> string -> string
find db key
returns the data associated with the given
key
in the database opened for the descriptor db
.
Raise Not_found
if the key
has no associated data.
val add : t -> string -> string -> unit
add db key data
inserts the pair (key
, data
) in
the database db
. If the database already contains data
associated with key</