以“a +”模式打开文件

时间:2010-09-05 05:33:19

标签: c file file-io fopen file-pointer

如果使用以下命令打开文件:

FILE *f1=fopen("test.dat","a+");

手册页上写着:

  

A +

     

打开阅读和追加(在文件末尾写)。该                     如果文件不存在,则创建该文件。初始文件位置                     用于读取是在文件的开头,但输出是                     始终附加到文件的末尾。

f1也有2个独立的偏移指针,一个用于读取&另一个写作?

3 个答案:

答案 0 :(得分:18)

没有

只有一个指针最初位于文件的开头,但 在尝试写入操作时会移动到文件的末尾 。您可以使用fseekrewind在文件中的任何位置重新定位它以进行读取,但写入操作会将其移回文件末尾。

答案 1 :(得分:4)

不,它只有一个指针。

答案 2 :(得分:4)

您可以从不混合FILE上的读写操作,而无需在其间调用fseek。它可能在某些实现中按您的意愿工作,但依赖于此的程序具有未定义的行为。因此,拥有2个职位的问题毫无意义。