擅长:python、mysql、java
<p>追加是文件I/O的一项基本功能,由操作系统完成。例如,带有<code>a</code>或<code>a+</code>模式的fopen是POSIX标准的一部分。对于文件I/O,操作系统也倾向于缓冲读写;例如,在大多数情况下,不必确保传递给<code>write</code>的数据一直都在磁盘上。有时它位于操作系统的某个缓冲区中;有时操作系统将这些缓冲区转储到磁盘上。如果对您很重要,您可以使用<code>fsync</code>强制写入;这也是一个很好的理由,可以确保在处理完打开的文件对象(或使用上下文管理器)时总是调用<code>close</code>;如果您忘记了,可能会因为操作系统中的缓冲区而出现奇怪的行为。在</p>
<p>回答你的问题。在任何给定的时刻,您打开的文件都很可能在RAM中。然而,据我所知,它对你是不可用的。您可以使用文件I/O方法与文件中的数据进行交互,但这并不是说有一个缓冲区,您可以获取它的内存地址,并读回刚刚写入的内容。至于说append模式的写入是否等同于在缓冲区中存储一些内容,然后再写入磁盘,我想我会说不。任何类型的文件I/O写入都可能被OS以同样的方式进行缓冲,而这是高效的原因是操作系统可以决定何时刷新缓冲区。如果您将内容存储在一个变量中,然后以原子方式将其写入磁盘,那么您就可以决定何时进行写入。在</p>