unsigned int len;
cdb_seek needs an open file descriptor, fd, pointing to the database. If cdb_seek returns 1, it points fd at the beginning of the data portion of the first record indexed by key, and it stores the data length in dlen. cdb_seek does not provide a way to read subsequent records with the same key.
It's fine to do several cdb_seek lookups with the same open file descriptor. Beware, however, that two simultaneous cdb_seek lookups can fail horribly; separate processes should not share the same database descriptor. Furthermore, any updates after the database was opened will be invisible. It's rarely a good idea for a long-running program to hold a database open.