以“a +”模式打开文件
如果使用以下命令打开文件:
FILE *f1=fopen("test.dat","a+");
手册页内容如下:
A +
打开阅读和追加(在文件末尾写)。 如果文件不存在,则创建该文件。 用于读取的初始文件位置位于文件的开头,但输出始终附加到文件的末尾。
那么f1
有两个独立的偏移指针,一个用于读取,另一个用于写入?
没有。
只有一个指针最初位于文件的开头,但是当尝试写入操作时,它会移动到文件的末尾 。 您可以使用fseek
重新定位它或在文件中的任何位置重rewind
以进行读取,但写入操作会将其移回文件末尾。
不,它只有一个指针。
你永远不能在FILE
上混合读写操作而不在其间调用fseek
。 它可能在某些实现中按您的意愿工作,但依赖于此的程序具有未定义的行为。 因此,拥有2个职位的问题毫无意义。