rendered paste body#include <db.h>
#define DATABASE "test.db"
int
db_open(DB_ENV *myEnv, DB *dbp) {
u_int32_t db_flags;
int ret;
//opening database
ret = db_create(&dbp, myEnv, 0);
db_flags = DB_CREATE | DB_AUTO_COMMIT;
ret = dbp->open(dbp,
NULL,
DATABASE,
NULL,
DB_BTREE,
db_flags,
0);
if (ret != 0) {
fprintf(stderr, "cant open env - %s \n",db_strerror(ret));
return 1;
} else {
return 0;
}
}
int
main() {
DB_ENV env,*myEnv;
DB db,*dbp;
u_int32_t db_flags;
u_int32_t env_flags;
int ret, ret_c;
const char *home_dir = "/tmp/";
myEnv=&env;
dbp=&db;
//creating environment
ret = db_env_create(&myEnv, 0);
if (ret != 0) {
fprintf(stderr, "cant create env- %s \n",db_strerror(ret));
goto err;
}
env_flags = DB_CREATE |
DB_INIT_MPOOL |
DB_INIT_TXN |
DB_INIT_LOCK |
DB_INIT_LOG;
ret = myEnv->open(myEnv,home_dir,env_flags,0);
if (ret != 0) {
fprintf(stderr, "cant open env - %s \n",db_strerror(ret));
goto err;
}
db_open(myEnv, dbp);
err:
if (dbp != NULL) {
ret_c = dbp->close(dbp, 0);
if (ret_c != 0) {
fprintf(stderr, "env close failed - %s \n", db_strerror(ret_c));
ret = ret_c;
}
}
if (myEnv != NULL) {
ret_c = myEnv->close(myEnv,0);
if (ret_c != 0) {
fprintf(stderr, "env close failed - %s \n", db_strerror(ret_c));
ret = ret_c;
}
}
exit(0);
}