DB-SPEEDYB

 view release on metacpan or  search on metacpan

c/speedyb.c  view on Meta::CPAN


speedyb_rc_t speedyb_open(dbh_t *dbh, char *fn) {
    void *db;
    struct stat statbuf;
    speedyb_header_t *header;

    bzero(dbh, sizeof(dbh_t));
    if((dbh->fd = open(fn, O_RDONLY)) < 0) {
        ERETURN(SPEEDYB_EOPEN);
    }
    if(stat(fn, &statbuf)) {
        ERETURN(SPEEDYB_EOPEN);
    }
    if(MAP_FAILED == (db = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, dbh->fd, 0))) {
        ERETURN(SPEEDYB_EOPEN);
    }
    header = (speedyb_header_t*) db;
    if(header->magic != MAGIC) {
        ERETURN(SPEEDYB_EMAGIC);
    }
    if(header->proto_ver != 1) {



( run in 0.426 second using v1.01-cache-2.11-cpan-49f99fa48dc )