| CDBR(3) | Library Functions Manual | CDBR(3) | 
cdbr, cdbr_open,
  cdbr_open_mem, cdbr_entries,
  cdbr_get, cdbr_find,
  cdbr_close —
cdbr_open(const
  char *path, int
  flags);
struct cdbr *
  
  cdbr_open_mem(void *base,
    size_t size, int flags,
    void (*unmap)(void *, void *, size_t),
    void *cookie);
uint32_t
  
  cdbr_entries(struct
    cdbr *cdbr);
int
  
  cdbr_get(struct
    cdbr *cdbr, uint32_t
    index, const void
    **data, size_t
    *datalen);
int
  
  cdbr_find(struct cdbr *cdbr,
    const void *key, size_t keylen,
    const void **data, size_t
    *datalen);
void
  
  cdbr_close(struct
    cdbr *cdbr);
cdbr library provides a space efficient (key,value)
  database based on perfect hashing.
A cdb database is opened for reading by calling
    cdbr_open(). The only supported value for
    flags is CDBR_DEFAULT. The
    function returns a handle to pass to the other functions. The database is
    closed by invoking cdbr_close(). All resources
    associated with the handle are freed and the memory returned by
    cdbr_get() and cdbr_find()
    is invalidated. cdbr_open_mem() works like
    cdbr_open(), but takes a memory reference to the
    content of the database file. If unmap is not
    NULL, it is called by
    cdbr_close() with cookie,
    base and size as arguments. It
    is not called by cdbr_open_mem() on error.
The number of records in the database can be obtained by calling
    cdbr_entries(). Records can be obtained by record
    number using cdbr_get() or by key using
    cdbr_find(). Both functions return 0 on success and
    update data and datalen
    accordingly. The location *data remains valid until
    cdbr_close() is called. It is the responsibility of
    the caller of cdbr_find() to ensure that the key
    matches the returned data. The function returns the only possible match, but
    the database doesn't store the keys to minimize overhead.
cdb format first appeared in
  NetBSD 6.0.
cdbr and cdbw functions have
  been written by Joerg Sonnenberger
  <joerg@NetBSD.org>.
| December 1, 2018 | NetBSD 9.4 |