是否需要使用自定义缓冲区来读取或写入 C 或 C++ 中的文件以减少文件 I/O?
例如,如果您需要逐条读取文件条目(一次一个字符,或一次一个结构),是否建议使用缓冲区减少对 fread() 的调用次数?它对 I/O(读和写)有什么影响吗? 答案是否取决于操作系统或代码中没有的任何其他内容?
我知道这是推荐的,但是今天有人告诉我 stdio.h
上的 setvbuf()
,看起来一切都已经存在了,你不需要将这种复杂性添加到您的程序中。
查看 stackoverflow,我找到了 an answer没有投票声称使用 fgetc
/setvbuf()
与 fgets
之间没有显着差异。这是真的吗?
最佳答案
fread()
函数已经实现了缓冲,以避免过于频繁地调用较低级别的 read()
。除非您进行了一些基准测试并发现文件 I/O 花费了大量时间,否则您不必担心它。
关于c++ - 是否需要为 C/C++ 中的文件 I/O 操作创建自己的缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006160/