NAME¶
tdb_traverse - visit every element in a tdb database
SYNOPSIS¶
#include <tdb.h>
 
int tdb_traverse(TDB_CONTEXT *tdb, 
        int (*fn)(TDB_CONTEXT *,TDB_DATA,TDB_DATA,void *),
        void *state);
 
DESCRIPTION¶
tdb_traverse is the only sure way to visit all the items within a given
  database, 
tdb Because this function has intimate knowledge of the
  internals of the database, it is able to cope with writers touching the
  database at the same time it is trying to traverse it.
 
If 
fn is supplied it will be called with the 
state parameter for
  each element in the database, as the forth argument. The First argument is the
  database 
tdb the second is the key and the third is the data. If this
  function call returns anything but 0, the traversal will stop. Unlike in
  tdb_fetch() the programmer is not required to free either the pointer from
  either the key or data parameters that are passed into the function. The
  
fn function should have the prototype:
int (*tdb_traverse_func)(TDB_CONTEXT *, TDB_DATA, TDB_DATA, void *);
 
Calling tdb_traverse with a NULL 
fn parameter is the appropriate way to
  count the number of elements in the database.
RETURN VALUE¶
The return value is the number of elements traversed or -1 if there was an
  error.
AUTHORS¶
Software: Andrew Tridgell <tridge@linuxcare.com> and Luke Kenneth Casson
  Leighton Man page: Ben Woodard <ben@valinux.com>
SEE ALSO¶
gdbm(3), 
tdb(3)