将数据buf写入文件的最佳方法是什么?
char buf[1024];
FILE *fp = fopen("test", "a+");
fwrite(buf, 1, 1024, fp);
fwrite(buf, 1024, 1, fp);
for (i = 0; i < 1024; i++) fwrite(buf, 1, 1, fp);
答案 0 :(得分:4)
循环缓慢;可能很慢。很可能,你在循环体中使用putc()
而不是fwrite()
做得更好。
前两个选项之间的差异是返回值。第一个输出1024个单字节,如果完全成功则返回1024,如果失败则返回一些较小的数字。第二个输出1024字节的单个单位;如果全部写入,它将返回1,但如果未能全部写入则返回0。这是否重要取决于你在写短文时可能会做些什么。除了返回值,两者是等价的。
至少在您坚持使用文件流时,没有其他更高性能的方法。切换到文件描述符会打开更多选项,但对数据的单write
次调用可能就像它一样好。
答案 1 :(得分:0)
1和2将是相同的...... 但是,我会做1,但是喜欢: -
fwrite(buf, sizeof(char), 1024, fp);