#include #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); }