我无法理解 C fopen api 文档中对“a”和“a+”选项的描述。“a+”中的选项是追加和更新。这里更新这个词是什么意思?
问问题
23947 次
2 回答
21
以下是手册页 ( man fopen
) 的内容:
一种
打开以追加(在文件末尾写入)。如果文件不存在,则创建该文件。流位于文件的末尾。
一个+
打开以进行读取和附加(在文件末尾写入)。如果文件不存在,则创建该文件。读取的初始文件位置在文件的开头,但输出始终附加到文件的末尾。
意思是:
对于 a+: 指针最初位于文件的开头(用于读取),但是当尝试写入操作时,它会移动到文件的末尾。
于 2013-11-09T09:26:02.657 回答
7
是的,有一个重要的区别:
a:在文件中追加数据,它可以更新文件,最后写入一些数据;
a+:在文件中追加数据并更新它,这意味着它可以在最后写入,也可以读取文件。
在只写日志的实际情况下,两者都适合,但如果您还需要读取文件中的某些内容(使用附加模式下已打开的文件),则需要使用“ a+ ”。
于 2016-07-07T15:59:20.483 回答