All pastes #839211 Raw Edit

Something

public text v1 · immutable
#839211 ·published 2007-12-30 22:15 UTC
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);
}