Berkeley DB4: Basic Usage

Objectified Interface

01   #include <stdio.h>
02   #include <db.h>
03   #include <unistd.h>
04   #include <string.h>
05
06   int main(int argc, char **argv)
07   {
08      DB *dbp;
09      DBT key,data;
10      int ret;
11
12      if(argc != 3) {
13              fprintf(stderr,"Usage: %s key data\n",argv[0]);
14              exit(1);
15      }
16
17      if((ret = db_create(&dbp,NULL,0)) != 0) {
18              fprintf(stderr,"create_db: %s\n",db_strerror(ret));
19      }
20      if((ret = dbp->open(dbp,"test.db",NULL,DB_BTREE,DB_CREATE,0644)) != 0) {
21              dbp->err(dbp,ret,"dbp->open()");
22              exit(1);
23      }
24
25      memset(&key,0,sizeof(key));
26      memset(&data,0,sizeof(data));
27      key.data = strdup(argv[1]);
28      key.size = strlen(argv[1]);
29      data.data = strdup(argv[2]);
30      data.size = strlen(argv[2]);
31
32      if((ret = dbp->put(dbp,NULL,&key,&data,0)) != 0) {
33              dbp->err(dbp,ret,"dbp->put()");
34              dbp->close(dbp,0);
35              exit(1);
36      }
37      printf("Stored key %s, data %s\n",(char *)key.data,(char *)data.data);
38
39      memset(&data,0,sizeof(data));
40
41      if((ret = dbp->get(dbp,NULL,&key,&data,0)) != 0) {
42              dbp->err(dbp,ret,"dbp->get()");
43              exit(1);
44      }
45      printf("Retrieved key %s, data %s\n",(char *)key.data,(char *)data.data);
46
47      if((ret = dbp->del(dbp,NULL,&key,0)) != 0) {
48              dbp->err(dbp,ret,"dbp->del()");
49              exit(1);
50      }
51      dbp->close(dbp,0);
52      return(0);
53   }

Prev

Next