我正在使用fwrite()
在循环中将数据写入文件。它会重复40次,但在第一个fwrite()
期间,最后几个KB不会写入文件。连续fwrite()
工作正常。当我运行单个块时,4000字节fwrite()
返回4000,但文件内容小于4000(接近3000字节)。 perror()
期间也没有报告错误。请帮助我,并提前感谢。
答案 0 :(得分:6)
fwrite
不会写入文件。该函数写入缓冲的文件流。使用fclose
关闭文件或使用fflush
刷新缓冲区时,缓冲区将刷新到磁盘。使用适当的函数清空缓冲区。
缓冲区用于获得良好的性能。如果您不关心性能并且需要直接写入磁盘,则可以使用setbuf
或setvbuf
功能禁用缓冲区。 (感谢Barmar的评论)。