Provided by: libtdb-dev_1.2.9-4_amd64 bug


       tdb_traverse - visit every element in a tdb database


       #include <tdb.h>

       int tdb_traverse(TDB_CONTEXT *tdb,
               int (*fn)(TDB_CONTEXT *,TDB_DATA,TDB_DATA,void *),
               void *state);


       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.


       The return value is the number of elements traversed or -1 if there was an error.


       Software:  Andrew  Tridgell  <>  and  Luke Kenneth Casson Leighton Man
       page: Ben Woodard <>


       gdbm(3), tdb(3)