bionic (3) tdb_firstkey.3.gz

Provided by: libtdb-dev_1.3.15-2_amd64 bug

NAME

       tdb_firstkey  - return the key of the first record in a tdb database tdb_nextkey - return the key of next
       record in the tdb database

SYNOPSIS

       #include <tdb.h>

       TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb);
       TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA prev_key);

DESCRIPTION

       tdb_firstkey fetches the key of the first entry in the tdb database.  tdb_nextkey fetches the key of  the
       entry immediately after prev_key in the database.

       The TDB_DATA structure returned by both these functions is defined as:

              typedef struct {
                   char *dptr;
                   size_t dsize;
              } TDB_DATA;

       The  order in which this traverses the database is its own internal hash order. Do not expect the keys to
       be in any recognizably sorted order.

       These functions are reliable even if other writers are accessing the database (or you  are  replacing  or
       deleting  elements as you traverse), except in the case of nested tdb_firstkey or tdb_nextkey calls.  For
       example, the following outer traversal may fail to traverse  all  the  elements,  or  may  even  traverse
       elements twice if other processes are manipulating the database:

                   TDB_DATA i, j;

                   for (i = tdb_firstkey(tdb); i.dptr; i = tdb_nextkey(tdb, i)) {
                        for (j = tdb_firstkey(tdb); j.dptr; j = tdb_nextkey(tdb, j)) {
                        ...
                        }
                   }

       If such behaviour is desired, use tdb_traverse instead.

RETURN VALUE

       If  the  call  succeeds,  then a TDB_DATA structure is returned with the dptr structure filled in. If the
       call fails or you have reached the end of the database then dptr will be set to NULL.

       NOTE: The caller is responsible for freeing the data pointed to by dptr

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)