Man Linux: Main Page and Category List

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)