libtxtdb
C library for txtdb, the text-based database
Download:
Example:
#include <stdio.h>
#include <err.h>
#include <txtdb.h>
int
main(int argc, char *argv[])
{
struct keyval kv, kv2, *kvread;
db_t db;
cursor_t c;
char e[128];
// open database instance in same directory
if ((db = txtdb_dbopen(".", e, sizeof(e))) == NULL)
errx(1, "txtdb_dbopen() failed: %s", e);
// write two key-value pairs to the class "sensors/basement"
kv2.k = "value";
kv2.v = "23.4 degC";
kv2.next = NULL;
kv.k = "id";
kv.v = "0xdeadbeef";
kv.next = &kv2;
if (txtdb_append(db, "sensors/basement", &kv) != 2)
errx(1, "txtdb_append() failed: %s", txtdb_err(db, e, sizeof(e)));
// open reader on "sensors/basement"
if ((c = txtdb_readopen(db, "sensors/basement", NULL, 0)) == NULL)
errx(1, "txtdb_readopen() failed: %s", txtdb_err(db, e,sizeof(e)));
// read back each tuple
while ((kvread = txtdb_next(c)) != NULL) {
for (kvread=kvread; kvread != NULL; kvread = kvread->next)
printf("key:%s value:%s ", kvread->k, kvread->v);
printf("\n");
}
txtdb_readclose(c);
// close up
txtdb_dbclose(db);
return 0;
}
If we run this program we see:
key:id value:0xdeadbeef key:value value:23.4 degC