有效地处理c中的文件

时间:2013-11-05 19:15:01

标签: c file data-structures

我希望在c中编写小型数据库,数据将存储在文件中,程序将读写结构到文件中。 如何有效地创建这种程序? 例如,一次从文件读取一个结构将不会有效(导致许多读/写hdd)。所以我需要将文件的一部分用于内存操作数据,然后将其写入文件(少读取/写入hdd),但如果文件太大,这可能会导致问题,所以有一个新问题如何每次都会将大部分文件加载到内存中。

所以它的主题很大,但我正在寻找有效的方法,但有些同时容易,我不是在寻找最大的效率。 注意:对我而言,一次只有一个结构。

感谢。

1 个答案:

答案 0 :(得分:1)

  

“一次从文件中读取一个结构将不会有效(导致许多读取/写入硬盘驱动器)”

这是一个很大的假设,这可能是错误的。或者至少没有你想象的那么糟糕。

C标准I / O库执行缓冲,操作系统也是如此。

从明确的程序组织的角度编写程序以便于在任何单位进行数据传输,并让缓冲完成聚合工作以提高效率。

即使程序表现不佳,我也不会得出结论,它需要进行重大调整。调整一些系统参数可能是最佳选择。或者只是几行特定于平台的代码,以提示可以提高性能的操作系统。在POSIX平台上,查看您是否具有函数fadvise。 (您可以使用FILE *函数从fileno流中检索文件描述符。)