免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1370 | 回复: 0
打印 上一主题 下一主题

Linux 安装使用Berkeley DB [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-19 15:09 |只看该作者 |倒序浏览
首先下载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
#include
#include
#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        
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP