DB3 problem with put
Andrew Thompson
andy at fud.org.nz
Tue Apr 8 16:00:40 PDT 2003
On Wed, 2003-04-09 at 00:54, Stephan Möck wrote:
> I'm using DB3 to store file informationen. The key is the directory name and
> the value is the inode number. At runtime I recieve the following error
> message frome the database. Can anybody help me with this problem?
>
> key: /test value: 16791
> DB->put: DB_KEYEXIST: Key/data pair already exists //should be /test/file
> DB->put: DB_KEYEXIST: Key/data pair already exists //should be
> /test/textfile
> DB->put: DB_KEYEXIST: Key/data pair already exists // ...
> DB->put: DB_KEYEXIST: Key/data pair already exists
> DB->put: DB_KEYEXIST: Key/data pair already exists
> DB->put: DB_KEYEXIST: Key/data pair already exists
>
>
> void add_database(char *sub)
> {
> memset(&key, 0, sizeof(key));
> memset(&data, 0, sizeof(data));
>
> key.data = sub;
> key.size = sizeof(sub);
> data.data = statbuf.st_ino; //inode number from the stat() call
> key.size = sizeof(statbuf.st_ino);
^^^^^^^^
Shouldnt this be data.size?
Andy
>
> if ((ret = dbp1->put(dbp1, NULL, &key, &data, DB_NOOVERWRITE)) == 0)
> {
> printf("key: %s value: %d\n", (char *)key.data,data.data);
> }
> else
> {
> dbp1->err(dbp1, ret, "DB->put");
> }
> }
More information about the freebsd-current
mailing list