forked from nijino2002/filemht
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_fileio.c
39 lines (31 loc) · 1.06 KB
/
test_fileio.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "mhtfile.h"
int main(int argc, char const *argv[])
{
int fd = -1;
int i = 1;
PMHT_FILE_HEADER mht_fh_ptr = NULL;
PMHT_BLOCK mht_blk_ptr = NULL;
uchar *mht_fh_buffer = NULL;
uchar *mht_blk_buffer = NULL;
fd = fo_create_mhtfile("./testdbfile.db");
mht_fh_ptr = makeMHTFileHeader();
mht_blk_ptr = makeMHTBlock();
mht_blk_ptr->m_pageNo = UNASSIGNED_PAGENO;
mht_fh_buffer = (uchar*) malloc(sizeof(uchar) * MHT_HEADER_LEN);
mht_blk_buffer = (uchar*) malloc(sizeof(uchar) * MHT_BLOCK_SIZE);
memset(mht_fh_buffer, 0, MHT_HEADER_LEN);
serialize_mht_file_header(mht_fh_ptr, &mht_fh_buffer, MHT_HEADER_LEN);
fo_update_mht_file_header(fd, mht_fh_buffer, MHT_HEADER_LEN);
for(i = 0; i < 100; i++){
mht_blk_ptr->m_pageNo = i + 1;
memset(mht_blk_buffer, 0, MHT_BLOCK_SIZE);
serialize_mht_block(mht_blk_ptr, &mht_blk_buffer, MHT_BLOCK_SIZE);
fo_update_mht_block(fd, mht_blk_buffer, MHT_BLOCK_SIZE, 0, SEEK_CUR);
}
fo_close_mhtfile(fd);
freeMHTFileHeader(&mht_fh_ptr);
freeMHTBlock(&mht_blk_ptr);
free(mht_fh_buffer);
free(mht_blk_buffer);
return 0;
}