703 #include #include #include #include #include #include #define DATABASE "access.db" typedef struct { char address[80]; char phone[30]; } addrinfo; int main(void) { DB *db; DBT key, data; int ret, t_ret; addrinfo info, *addrp; if (! (db = dbopen(DATABASE, O_CREAT|O_RDWR, 0644, DB_HASH, NULL))) { fprintf(stderr, "Couldn't initialize database!\n"); exit(1); } strcpy(info.address, "Kukvagen 54"); strcpy(info.phone, "12345"); memset(&key, 0, sizeof(key)); memset(&data, 0, sizeof(data)); key.data = "minnies"; key.size = sizeof("minnies"); data.data = &info; data.size = sizeof(info); if (! (ret = db->put(db, &key, &data, 0))) printf("db: %s: key stored.\n", (char *)key.data); else { perror("DB->put"); goto err; } if (! (ret = db->get(db, &key, &data, 0))) { addrp = (addrinfo *)data.data; printf("db: %s: key retrieved: data was %s, %s.\n", (char *)key.data, addrp->address, addrp->phone); } else { if (ret > 0) fprintf(stderr, "Key not found\n"); else perror("DB->get"); goto err; } if (! (ret = db->del(db, &key, 0))) printf("db: %s: key was deleted.\n", (char *)key.data); else { if (ret > 0) fprintf(stderr, "Key not found\n"); else perror("DB->del"); goto err; } if (! (ret = db->get(db, &key, &data, 0))) printf("db: %s: key retrieved: data was %s.\n", (char *)key.data, (char *)data.data); else { if (ret > 0) fprintf(stderr, "Key not found\n"); else perror("DB->get"); } err: if ((t_ret = db->close(db)) != 0 && ret == 0) ret = t_ret; exit(ret); } . 0