标准库只保证刷新写缓冲,对于读缓冲的刷新行为未定义。 读写之间要fseek清空FILE状态以及缓冲,lseek偏移文件到准确位置。 切忌只在写操作后调用fflush,否则行为未知。
一般情况下你fwrite会写到内存缓冲区里,流的内部实现会自行判断什么时候要把内存里缓冲的数据真正输出。而fflush会强制把缓冲的数据输出。对于输入流是不存在写缓冲这种概念的,因为C标准库输入输出走的是同一个接口,所以可以对输入流使用fflush,不过这是没意义的。
69,369
社区成员
243,082
社区内容
加载中
试试用AI创作助手写篇文章吧