电子科大2020Linux高级环境编程大作业
总体要求
linux环境下,采用C或C++
存储一张表,然后能对该表进行查询、添加等操作
上述功能以API的形式提供给应用使用
存储要求
利用已学的文件操作API,在文件系统中存储一张表
该表有100个属性,每个属性都是8字节大小(int64_t)
需要支持的最大行数为1百万行
添加要求
提供API函数,实现向表格添加一行的功能(添加到表格的末尾)
搜索要求
提供API函数,实现对表格的某一个属性进行范围查找或精确查找的功能。例如:
查找在属性A上,大于等于50,小于等于100的所有行,当上下限相等时,即为精确查找
用户可以指定在哪一个属性上进行搜索
当搜索结果包含的行数过多时,可以只返回一小部分,如10行等
索引要求
提供API函数,为表格的某一个属性建立索引结构,以实现快速搜索
自行选择使用哪种数据结构,建立索引结构,比如B+树等
建立的索引结构,需要保存到一个文件中(索引文件);下次重启应用程序,并执行搜索任务时,应先检查是否已为相应属性建立了索引结构,即,搜索功能实现时,需要查找是否有索引文件存在,若有,则使用该文件加速搜索
并发要求
应用程序可以以多线程的方式,使用我们提供的上述API
要保证多线程环境下,表、索引结构、索引文件的一致性(考虑互斥的要求)
测试要求
表中的数据随机生成
测试用例要覆盖主要的需求
附加
插入、删除、修改表中的数据不做要求
要求使用C或C++语言