Linux 安装使用Berkeley DB


首先下载Berkeley DB软件包
http://download.oracle.com/berkeley-db/db-4.7.25.NC.tar.gz

下载完后,对其进行解压:
$ tar zxvf db-4.7.25.NC.tar.gz

然后进入其build_unix目录,输入命令:
$ ../dist/configure
检查系统环境并产生编译程序所需的文件

接着就可以:
$ make
$ sudo make install

为了运行使用Berkeley DB函数库的应用程序,还必须将lib目录添加到系统的库文件目录列表中。在/etc/ld.so.conf文件中添加:
/usr/local/BerkeleyDB.4.7/lib/

修改完后运行ldconfig命令来更新系统。

现在可以编写一个简单的程序来测试一下了。

#include <stdio.h>
#include <stdlib.h>
#include <db.h>

#define DATABASE "test.db"

typedef struct _data_struct {
    int data_id;
    char data[20];
} data_struct;

int main()
{
    DBT key, data;
    DB *dbp;
    int ret;
    data_struct my_data;

    ret = db_create(&dbp, NULL, 0);  // create the DB handle
    if (ret != 0)
    {
        perror("create");
        return 1;
    }

    ret = dbp->open(dbp, NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0);  // open the database
    if (ret != 0)
    {
        perror("open");
        return 1;
    }


    my_data.data_id = 1;
    strcpy(my_data.data, "some data");

    memset(&key, 0, sizeof(DBT));
    memset(&data, 0, sizeof(DBT));

    key.data = &(my_data.data_id);
    key.size = sizeof(my_data.data_id);
    data.data = &my_data;
    data.size = sizeof(my_data);

    ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE);  // add the new data into the database
    if (ret != 0)
    {
        printf("Data ID exists\n");
    }

    dbp->close(dbp, 0);   // close the database

    return 0;
}

编译程序:
$ gcc -I /usr/local/BerkeleyDB.4.7/include/ -o testdb testdb.c  -L /usr/local/BerkeleyDB.4.7/lib/ -ldb

运行程序:
$ ./testdb

可以看到目录下生成了test.db文件,并对该文件进行了编码,简单用cat命令可以查看其内容(实际中当然是用dbp->get()函数了):
$ cat test.db
b1        ????     ????     some data?Bп??

可以看到"some data"已经被记录了.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值