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