gpt4 book ai didi

c - 有效地处理 c 中的文件

转载 作者:行者123 更新时间:2023-11-30 15:43:39 25 4
gpt4 key购买 nike

我想用c编写小型数据库,数据将存储在文件中,程序将读取结构并将其写入文件。如何有效地创建此类程序?例如,一次从文件读取一个结构的效率不高(因为对硬盘进行多次读/写)。所以我需要将文件的一部分放入内存中操作数据然后将其写入文件(减少对硬盘的读/写),但是如果文件太大,这可能会导致问题,所以有一个新问题如何该文件的大部分内容每次都会加载到内存中..

所以这是一个很大的话题,但我正在寻找有效的方法,但同时又很简单,我不是在寻找最大效率。注意:对我来说简单的是一次一个结构。

谢谢。

最佳答案

"reading from file one struct at a time will not be efficient(cause of many read/write to hdd)"

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

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

从清晰的程序组织的角度来看,以任何方便的单位编写程序进行数据传输,并让缓冲进行聚合工作以提高效率。

即使该程序确实表现不佳,我也不会立即得出需要对其进行重大重组的结论。调整一些系统参数可能是一种可行的方法。或者也许只是几行特定于平台的代码来向操作系统提供可以提高性能的提示。例如,在 POSIX 平台上,查看是否有函数 fadvise。 (您可以使用 fileno 函数从 FILE * 流中检索文件描述符。)

关于c - 有效地处理 c 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19796956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com