X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=database.c;h=c3ac954f512423b5433e6877ed7a8ad785f5daf3;hb=c4025f5d80dc8f3f15ee6814ac689b9eee1dba10;hp=2da6530678a1d96ae1c23c7afd146704d59b9a6a;hpb=82f9ef6f267b3fcbd0052ef809dbe6df5de5a925;p=blerg.git diff --git a/database.c b/database.c index 2da6530..c3ac954 100644 --- a/database.c +++ b/database.c @@ -36,7 +36,7 @@ void blerg_segment_close(struct blerg *blerg) { if (blerg->data_fd != -1) close(blerg->data_fd); if (blerg->index != NULL) - munmap((void *)blerg->index, sizeof(RECORDS_PER_SEGMENT * sizeof(struct record))); + munmap((void *)blerg->index, RECORDS_PER_SEGMENT * sizeof(struct record)); if (blerg->index_fd != -1) close(blerg->index_fd); } @@ -108,6 +108,22 @@ open_failed_index_open: return 0; } +int blerg_exists(const char *name) { + int namelen = strlen(name); + char filename[512]; + + if (namelen > 32) { + perror("Name too long"); + return 0; + } + + snprintf(filename, 512, "%s/%s", DATA_PATH, name); + if (access(filename, F_OK) == -1) + return 0; + else + return 1; +} + struct blerg *blerg_open(const char *name) { int namelen = strlen(name); char filename[512];