C 将数据buf写入文件的最佳方式是什么
将数据buf写入文件的最佳方式是什么C 将数据buf写入文件的最佳方式是什么,c,file-io,C,File Io,将数据buf写入文件的最佳方式是什么 char buf[1024]; FILE *fp = fopen("test", "a+"); fwrite(buf,1024,fp) fwrite(buf,1024,1,fp) for(i=0;i
char buf[1024];
FILE *fp = fopen("test", "a+");
fwrite(buf,1024,fp)代码>
fwrite(buf,1024,1,fp)代码>
for(i=0;i<1024;i++)fwrite(buf,1,1,fp)代码>
1和2将是相同的。。。 但是,我会做1,但是喜欢:-
fwrite(buf, sizeof(char), 1024, fp);
1和2将是相同的。。。 但是,我会做1,但是喜欢:-
fwrite(buf, sizeof(char), 1024, fp);
循环缓慢;可能很慢。很可能,在循环体中使用
putc()
比使用fwrite()
做得更好
前两个选项之间的差异是返回值。第一个输出1024个单字节,如果完全成功,则返回1024个,如果失败,则返回较小的数字。第二个输出1024字节的单个单位;如果全部写入,则返回1;如果全部写入失败,则返回0。这是否重要取决于你在写短文时可能会做什么。除了返回值之外,这两个值是等效的
至少在您坚持使用文件流时,没有其他更高性能的方法。切换到文件描述符会打开更多的选项,但是对数据进行一次
写入调用可能是最好的选择;可能很慢。很可能,在循环体中使用putc()
比使用fwrite()
做得更好
前两个选项之间的差异是返回值。第一个输出1024个单字节,如果完全成功,则返回1024个,如果失败,则返回较小的数字。第二个输出1024字节的单个单位;如果全部写入,则返回1;如果全部写入失败,则返回0。这是否重要取决于你在写短文时可能会做什么。除了返回值之外,这两个值是等效的
至少在您坚持使用文件流时,没有其他更高性能的方法。切换到文件描述符会打开更多的选项,但是对数据的单个写入调用可能会得到最好的结果。sizeof(char)
始终为1,因此为了简洁起见,只需使用1。一个和两个返回值不同。sizeof(char)
始终为1,为了简洁起见,只需使用1。1和2的返回值不同。我的意思是“最高性能”,我的意思是“最高性能”