Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C打开Berkeley DB中的数据库时出错_C_Berkeley Db - Fatal编程技术网

使用C打开Berkeley DB中的数据库时出错

使用C打开Berkeley DB中的数据库时出错,c,berkeley-db,C,Berkeley Db,我有一个结构 struct pearson_record{ unsigned char *src; unsigned char *dst; unsigned char type; float rho; }; DB *dbp; int ret; if ((ret = db_create(&dbp, NULL, 0)) != 0) { fprintf(stderr, "db_create: %s\n", db_strerror(ret));

我有一个结构

struct pearson_record{
    unsigned char *src;
    unsigned char *dst;
    unsigned char type;
    float rho;
};

DB *dbp;
int ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
    fprintf(stderr, "db_create: %s\n", db_strerror(ret));
    exit (1);
}
在这个结构中,我必须存储值,但是现在我在打开数据库时出错,说access.db:Permission denied

if ((ret = dbp->open(dbp, NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
    dbp->err(dbp, ret, "%s", DATABASE);     
}

为什么会出现“权限被拒绝”错误?

可能是因为您没有写入权限,无法打开数据库文件。试着像这样运行你的程序:$strace./myprogram 2>&1|grepopen@Tom:这不起作用…….您的API文档说->打开的参数是什么?这些年来,它们已经发生了变化,所以我不确定您正在传递什么参数。您正在尝试创建内存中的数据库吗?正在关闭--您的open调用中的数据库是什么?是路径吗?@Joe:DATABASE是一个.db文件。#定义DATABASE“access.db”