2013-11-09 71 views

回答

6

这里是男人页(man fopen)说:

一个

公开赛追加(在文件尾写)。如果文件 不存在,则创建该文件。流位于文件的末尾。

一个+

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


这意味着:

为+: 指针最初是在该文件(读出)的开始,但是当写操作被尝试它被移动到的所述端文件。

+2

不要轻易相信 - 不是所有的手册页都是一样的。我说:“写作开放。如果该文件不存在,则会创建该文件。流位于文件的末尾。随后对文件的写入将始终结束于当前文件的结尾,而不管任何介入fseek(3)或类似的.'和'a + Open用于读取和写入。如果该文件不存在,则会创建该文件。流位于文件的末尾。后续对文件的写入操作将始终结束于文件的当前结束位置,而不管任何干预fseek(3)或类似操作。' –

+0

快速测试显示首次读取非空文件(在任何写入之前)返回EOF。所以在这种情况下它从结尾读取。这是在Mac OS X上。 –

1

是的,有一个重要的区别:

一个:追加数据文件,它可以更新文件写入末的一些数据;

一个+:在文件中附加数据,并更新它,这意味着它可以在结束写,并且还为能够读取该文件。

在只写日志都是适合一之实践的情况,但如果你还需要的文件中读一些(使用附加模式已经打开的文件),你需要使用“A +”。

相关问题