5

在 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)。

4

1 回答 1

0

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

于 2012-05-17T16:05:29.873 回答