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 |