⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 程序代码使用说明: (1)所有源代码目录下都提供了Makefile(非Qt)
💻 C
字号:
#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <string.h>/* To use bdb, include this header file.*/#include <db.h>   #define DB_FILE "test_data.db"int main(){    DB_ENV *myEnv;    DB *dbp;    DBT key, data;    int ret,t_ret;    u_int32_t env_flags;      /* env open flags */    /*         Create an environment object and initialize it for error        reporting.     */    ret = db_env_create(&myEnv, 0);    if (ret != 0)     {        printf("Error creating env handle: %s\n", db_strerror(ret));        return -1;    }    /* Open the environment. */    env_flags = DB_CREATE |    /* If the environment does not exist, create it. */                DB_INIT_MPOOL; /* Initialize the in-memory cache. */        ret = myEnv->open(myEnv,         /* DB_ENV ptr */            "/tmp/db/testEnv",      /* env home directory */            env_flags,              /* Open flags */            0);                     /* File mode (default) */    if (ret != 0)     {        printf("Environment open failed: %s\n", db_strerror(ret));        return -1;    }      /* create database*/    if ((ret = db_create(&dbp, myEnv, 0)) != 0)    {          printf("db_create: %s\n", db_strerror(ret));          return -1;    }    if ((ret = dbp->open(dbp, NULL, DB_FILE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0)    {          dbp->err(dbp, ret, "%s", DB_FILE);          return -1;    }        char* name = "Bill";     int height = 175;        memset(&key, 0, sizeof(key));    memset(&data, 0, sizeof(data));         key.data = name;    key.size = strlen(name) + 1;    data.data = &height;    data.size = sizeof(int);    /* put data, NO-OVERWRITE */    if ((ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE)) == 0)        printf("bdb -- key: %s and data: %d stored.\n", (char *)key.data, *((int *)data.data));    else         dbp->err(dbp, ret, "bdb -- put error");    /* get data */    DBT ret_key, ret_data;    memset(&ret_key, 0, sizeof(&ret_key));    memset(&ret_data, 0, sizeof(&ret_data));        ret_key.data = name;    ret_key.size = strlen(name) + 1;    ret_key.flags = DB_DBT_USERMEM;        int h = 0;    ret_data.data = &h;    ret_data.ulen = sizeof(int);    ret_data.flags = DB_DBT_USERMEM;      if ((ret = dbp->get(dbp, NULL, &ret_key, &ret_data, 0)) == 0)    {        printf("bdb -- key: %s retrieved; data was %d.\n", (char *)ret_key.data, h);    }    else        dbp->err(dbp, ret, "bdb -- get record error");    /* delelte record */    if((ret = dbp->del(dbp, NULL, &key, 0)) == 0)        printf("bdb -- key %s was deleted.\n", (char *)key.data);    else        dbp->err(dbp, ret, "bdb -- delelte db error");    /* close, only when the db successful closed,the data can real write to the disk. */    if (dbp != NULL)        dbp->close(dbp, 0);    /* Close evn     * When you are done with an environment, you must close it.     * Before you close an environment, make sure you close any opened databases */    if (myEnv != NULL)        myEnv->close(myEnv, 0);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -