如何确定确切的原因,为什么berkeley db在db-> open上返回EINVAL?

Pup*_*nij 5 c database berkeley-db verbosity

在berkeley db文档中,声明原因可能如下:

指定了无效的标志值或参数(例如,未知数据库类型,页面大小,散列函数,填充字节,字节顺序)或与指定数据库不兼容的标志值或参数.指定了DB_THREAD标志,并且此架构无法使用快速互斥锁.

DB_THREAD标志指定为DB-> open,但未指定DB_EN​​V-> open调用创建DB句柄的环境.

使用DB_THREAD标志指定了支持平面文本文件,或者提供的数据库环境支持事务处理.

我使用的唯一标志是DB_CREATE,数据库类型是DB_BTREE.

我想知道导致EINVAL的确切原因,但我没有找到任何可以帮助我在"DB"结构中的详细配置(在DB_EN​​V中,他们有set_verbose方法,但我不使用DB_EN​​V).

Don*_*hev 0

您可以尝试一下DB->err()这些示例。如果我没记错的话,有一个可以export X=Y设置的环境变量(可以设置 shell 环境变量),并且库将开始将错误消息打印到 stderr,但它可能是 DB Env 的东西......抱歉,找不到信息现在。