DB3 problem with put
Stephan Möck
s.moeck at gmx.de
Tue Apr 8 15:54:42 PDT 2003
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);
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");
}
}
The calling function:
char *dir;
...
add_database(dir);
....
More information about the freebsd-current
mailing list