From 37405fa0e962a1cd96c762fd9be71db68dd932c6 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 5 Dec 2021 21:15:56 +0800 Subject: [PATCH] more --- contrib/test/bdb/bdbTest.c | 47 +++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/contrib/test/bdb/bdbTest.c b/contrib/test/bdb/bdbTest.c index 3780227ec6..0d89605202 100644 --- a/contrib/test/bdb/bdbTest.c +++ b/contrib/test/bdb/bdbTest.c @@ -1,5 +1,6 @@ #include #include +#include #include "db.h" @@ -13,13 +14,51 @@ #define USE_ENV 0 +#define DESCRIPTION_SIZE 128 +float money = 122.45; +char *description = "Grocery bill."; + +static void put_value(DB *dbp) { + DBT key = {0}; + DBT value = {0}; + int ret; + + key.data = &money; + key.size = sizeof(money); + + value.data = description; + value.size = strlen(description) + 1; + + ret = dbp->put(dbp, NULL, &key, &value, DB_NOOVERWRITE); + if (ret != 0) { + fprintf(stderr, "Failed to put DB record: %s\n", db_strerror(ret)); + } +} + +static void get_value(DB *dbp) { + char desp[DESCRIPTION_SIZE]; + DBT key = {0}; + DBT value = {0}; + + key.data = &money; + key.size = sizeof(money); + + value.data = desp; + value.ulen = DESCRIPTION_SIZE; + value.flags = DB_DBT_USERMEM; + + dbp->get(dbp, NULL, &key, &value, 0); + printf("The value is \"%s\"\n", value.data); +} + int main(int argc, char const *argv[]) { DB * dbp = NULL; u_int32_t db_flags; DB_ENV * envp = NULL; u_int32_t env_flags; int ret; - DBT key, value; // Database records + DBT key = {0}; + DBT value = {0}; #if USE_ENV // Initialize an env object and open it for @@ -56,6 +95,12 @@ int main(int argc, char const *argv[]) { exit(1); } + // Insert a key-value record + put_value(dbp); + + // Read the key-value record + get_value(dbp); + // Close the database if (dbp != NULL) { dbp->close(dbp, 0);