9

我无法理解 C fopen api 文档中对“a”和“a+”选项的描述。“a+”中的选项是追加和更新。这里更新这个词是什么意思?

4

2 回答 2

21

以下是手册页 ( man fopen) 的内容:

一种

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

一个+

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


意思是:

对于 a+: 指针最初位于文件的开头(用于读取),但是当尝试写入操作时,它会移动到文件的末尾。

于 2013-11-09T09:26:02.657 回答
7

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

a:在文件中追加数据,它可以更新文件,最后写入一些数据;

a+:在文件中追加数据并更新它,这意味着它可以在最后写入,也可以读取文件。

在只写日志的实际情况下,两者都适合,但如果您还需要读取文件中的某些内容(使用附加模式下已打开的文件),则需要使用“ a+ ”。

于 2016-07-07T15:59:20.483 回答