]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb/tools/mktdb.c
tdb: add mktdb tool.
[ccan] / ccan / tdb / tools / mktdb.c
diff --git a/ccan/tdb/tools/mktdb.c b/ccan/tdb/tools/mktdb.c
new file mode 100644 (file)
index 0000000..ed0efcd
--- /dev/null
@@ -0,0 +1,29 @@
+#include <ccan/tdb/tdb.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <err.h>
+
+int main(int argc, char *argv[])
+{
+       unsigned int i, num_recs;
+       struct tdb_context *tdb;
+
+       if (argc != 3 || (num_recs = atoi(argv[2])) == 0)
+               errx(1, "Usage: mktdb <tdbfile> <numrecords>");
+
+       tdb = tdb_open(argv[1], 10007, TDB_DEFAULT, O_CREAT|O_TRUNC|O_RDWR, 0600);
+       if (!tdb)
+               err(1, "Opening %s", argv[1]);
+
+       for (i = 0; i < num_recs; i++) {
+               TDB_DATA d;
+
+               d.dptr = (void *)&i;
+               d.dsize = sizeof(i);
+               if (tdb_store(tdb, d, d, TDB_INSERT) != 0)
+                       err(1, "Failed to store record %i", i);
+       }
+       printf("Done\n");
+       return 0;
+}