来自APUE
当打开文件进行读写(类型中的加号)时,有两个限制.
•如果没有干预fflush,fseek,fsetpos或倒带,输出不能直接输入.
•输入不能直接跟随输出而没有介入的fseek,fsetpos或倒带,或者遇到文件结束的输入操作.
为什么在这两种情况下"fseek,fsetpos或倒带"?
为什么在第二种情况下"输入操作遇到文件结束"?
谢谢.
Linux API的一个类似问题是可以`read()`直接后跟`read()`和`read()`的`write()`?
使用流时FILE,在读取或写入文件时会使用单个内部缓冲区。
在读取和写入之间切换时,必须在切换模式之前清除该缓冲区,否则可能会发生数据丢失。上述每个操作都会执行所需的缓冲区刷新。