您当前的位置: 首页 >  数据库

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

如何做一个国产数据库(二)

qianbo_insist 发布时间:2021-06-24 21:27:14 ,浏览量:0

如果做一个国产数据库一链接

承接上文,继续 1、重新定义数据结构
typedef struct sdata
{
	uint32_t index;
	char vardata[128];
}sdata;

typedef struct sdata_index
{
	uint32_t index;
	uint32_t offset;
}sdata_index;

sdata_index 是我们要读到一个内存里面去的,同时,我们会使用内存查找的方式,拿到数据的索引值,在内存里面使用二分查找算法

int binSearch(uint32_t x, sdata_index *a, int n)
{
	int low, high, mid;
	low = 0;
	high = n - 1;
	while (low  index_num)
		return -1;
	FILE * fp = fopen(file, "wb");
	if (fp == NULL)
		return -1;
	fpos_t pos_start = 0;
	fpos_t pos_index = 8;
	fpos_t pos_data = pos_index + INDEX_BYTES;
	fpos_t position =  4 + 4 + INDEX_BYTES + sizeof(data[0].vardata) * n;
	fsetpos(fp, &position);
	fsetpos(fp, &pos_start);
	//写入总索引量
	fwrite(&index_num, sizeof(int), 1, fp);
	//写入目前索引量
	fwrite(&n, sizeof(int), 1, fp);
	//排序写入文件,已经排好了序号
	//std::sort(&data[0], &data[n], Rule());
	int offsetsum = 4+4+INDEX_BYTES;
	int len = sizeof(data[0].vardata);
	for (int i = 0; i             
关注
打赏
1663161521
查看更多评论
0.0419s