Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

tdb_firstkey(3) [centos man page]

TDB_FIRSTKEY(3) 					     Linux Programmer's Manual						   TDB_FIRSTKEY(3)

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 <> and Luke Kenneth Casson Leighton Man page: Ben Woodard <> SEE ALSO
gdbm(3), tdb(3) Samba Aug 16, 2000 TDB_FIRSTKEY(3)

Check Out this Related Man Page

TDB_OPEN(3)						     Linux Programmer's Manual						       TDB_OPEN(3)

tdb_open - Open a tdb database. SYNOPSIS
#include <tdb.h> TDB_CONTEXT *tdb_open(const char *pathname, int hash_size, int tdb_flags, int open_flags, mode_t mode ); DESCRIPTION
Open the database, creating it if necessary. The hash size is advisory, use zero for a default value. tdb_flags can be one of TDB_CLEAR_IF_FIRST Clear database if we are the only one with it open. TDB_INTERNAL Don't use a file, instead store the data in memory. The pathname , open_flags , and mode are ignored in this case. This is useful if you need a quick associative array or map. TDB_NOLOCK Don't do any locking (this is always turned on for read-only file descriptors) TDB_NOMMAP Don't use mmap. TDB_CONVERT Create a database in the reverse of native endian: normally when the database is created (or cleared with TDB_CLEAR_IF_FIRST), it is created in native endian order. This flag is set (or unset) automatically for existing databases. The open_flags and mode are passed straight to the open call on the database file. A flags value of O_WRONLY is invalid. RETURN VALUE
On success a pointer to an opaque data structure, a TDB_CONTEXT is returned. On error a NULL is returned. AUTHORS
Software: Andrew Tridgell <> and Luke Kenneth Casson Leighton Man page: Ben Woodard <> SEE ALSO
open(2), gdbm(3), tdb(3) Samba Aug 16, 2000 TDB_OPEN(3)
Man Page