fwrite()返回值与文件大小不匹配

Sat*_*iya 0 c fwrite

fwrite()用来在循环中将数据写入文件.它重复了40次,但在fwrite()最后几个KB中没有写入文件.连续fwrite()工作正常.当我运行单个块时,4000字节fwrite()返回4000,但文件内容小于4000(接近3000字节).同时也没有报告错误perror().请帮助我,并提前感谢.

har*_*per 6

fwrite不写入文件.该函数写入缓冲的文件流.使用fclose或关闭缓冲区时,缓冲区将刷新到磁盘fflush.使用适当的函数清空缓冲区.

缓冲区用于获得良好的性能.如果您不关心性能并且需要直接写入磁盘,则可以使用setbufsetvbuf函数来禁用缓冲区.(感谢Barmar的评论).