トップ «前の日記(2005-07-20) 最新 次の日記(2005-07-22)» 編集

豊田正史のSLとは関係ございません


2005-07-21

_ [開発] Berkeley DBのインタフェース間差異に気をつけろ

Perlインタフェース(BerkeleyDB)で作成したDBをCインタフェースで使う時には、key、valueの扱いに注意。Perlの文字列をkey、valueとしてputした場合、格納される文字列はnull terminatedには「ならない」。したがって、Cインタフェースで読むときには、keyにはnullを含めず、返ってきたvalueはサイズをチェックして余計に読まないようにしなくてはならない。逆にCインタフェースでnull込みで文字列をputして、Perlインタフェースで読むときにはkeyにnullを加え、返ってきた文字列はnull付きなのでchopする。filter_fetch_keyとかfilter_store_valueなどを使う手もある。どっちかで閉じていれば問題ないのだが...。


README日記の書き方