5

berkeley dbのドキュメントには、理由は次のように記載されています。

無効なフラグ値またはパラメーターが指定されました(たとえば、不明なデータベースタイプ、ページサイズ、ハッシュ関数、パッドバイト、バイト順序)、または指定されたデータベースと互換性のないフラグ値またはパラメーター。DB_THREADフラグが指定されており、このアーキテクチャーでは高速ミューテックスを使用できません。

DB_THREADフラグはDB->openに指定されましたが、DBハンドルが作成された環境のDB_EN​​V->open呼び出しには指定されませんでした。

バッキングフラットテキストファイルが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) があり、ライブラリはエラー メッセージを stderr に出力し始めますが、それは DB Env の問題だった可能性があります。申し訳ありませんが、情報が見つかりません。今。

于 2012-05-17T16:05:29.873 に答える