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

时间:2012-05-16 17:21:46

标签: c database berkeley-db verbosity

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

  

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

     

DB_THREAD标志已指定为DB-> open,但未指定DB_EN​​V->打开调用创建数据库句柄的环境。

     

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以尝试DB->err()these examples。如果我没记错的话,有一个环境变量(你可以export X=Y的shell环境变量)可以设置并且库会开始向stderr打印错误消息,但它可能是DB Env的事情...对不起,可以现在找不到信息。