tdb_traverse - visit every element in a tdb database
Contents
Description
tdb_traverseistheonlysurewaytovisitalltheitemswithina 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 stateparameter 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.
Name
tdb_traverse - visit every element in a tdb database
Return Value
The return value is the number of elements traversed or -1 if there was an error.
See Also
gdbm(3), tdb(3)
Samba Aug 16, 2000 TDB_TRAVERSE(3)
Synopsis
#include<tdb.h>inttdb_traverse(TDB_CONTEXT*tdb,int(*fn)(TDB_CONTEXT*,TDB_DATA,TDB_DATA,void*),void*state);
