在berkeley db文档中,声明原因可能如下:
指定了无效的标志值或参数(例如,未知数据库类型,页面大小,散列函数,填充字节,字节顺序)或与指定数据库不兼容的标志值或参数。 指定了DB_THREAD标志,并且此架构无法使用快速互斥锁。
DB_THREAD标志已指定为DB-> open,但未指定DB_ENV->打开调用创建数据库句柄的环境。
使用DB_THREAD标志指定了支持平面文本文件,或者提供的数据库环境支持事务处理。
我使用的唯一标志是DB_CREATE,数据库类型是DB_BTREE。
我想知道导致EINVAL的确切原因,但我没有找到任何可以帮助我在“DB”结构中的详细配置(在DB_ENV中,他们有set_verbose方法,但我不使用DB_ENV) 。
答案 0 :(得分:0)
您可以尝试DB->err()和these examples。如果我没记错的话,有一个环境变量(你可以export X=Y
的shell环境变量)可以设置并且库会开始向stderr打印错误消息,但它可能是DB Env的事情...对不起,可以现在找不到信息。