在 berkeley db 文档中,说明原因可能有以下几种:
指定了无效的标志值或参数(例如,未知的数据库类型、页面大小、散列函数、填充字节、字节顺序)或与指定数据库不兼容的标志值或参数。指定了 DB_THREAD 标志,并且快速互斥体不适用于此体系结构。
DB_THREAD 标志被指定给 DB->open,但没有被指定给 DB_ENV->open 调用,用于创建 DB 句柄的环境。
使用 DB_THREAD 标志或提供的数据库环境支持事务处理指定了支持平面文本文件。
我使用的唯一标志是 DB_CREATE,数据库类型是 DB_BTREE。
我想知道导致 EINVAL 的确切原因,但我没有找到任何可以在“DB”结构中帮助我的详细配置(在 DB_ENV 中,他们有 set_verbose 方法,但我不使用 DB_ENV)。