在C或C++中读写文件时,是否有必要使用自定义缓冲区来减少文件I/O?
例如,如果需要逐个条目(逐个字符或逐个结构体)读取文件,是否建议使用缓冲区来减少对fread()的调用次数?这对I/O(读和写)有任何影响吗?答案是否取决于操作系统或代码之外的其他因素?
我了解到这是建议的做法,但今天有人告诉我,在stdio.h中使用setvbuf(),似乎已经包含了一切,您不需要向程序添加这种复杂性。
在stackoverflow上查看时,我发现一个回答没有得到投票,声称使用fgetc/setvbuf()与fgets之间没有显着差异。这是真的吗?