当我以写入模式打开文件时,文件是否加载到 RAM 中?

Is the file loaded in RAM when i open the file in write mode?

假设我有一个空文件。现在文件打开了(假设我使用的是c语言) 那么我的问题是:-

文件是否加载到 RAM 中?

如果我将数据写入大小大于 RAM 大小的文件中,会发生什么情况?数据是否成功写入文件(因为数据的大小大于RAM)?

What happens if i write data in the file whose size is greater than size of RAM?

一个文件的大小不受C语言限制到可用的RAM内存space。

Is the file loaded in RAM?

通常根据需要将一部分加载到 RAM 中,但这是一个实现细节,不应期望限制文件大小。

Is the file loaded in RAM when i open the file in write mode?

通常不会,但这是一个实现细节,不应期望限制文件大小。

Is the data successfully written in the file or not( since the size of data is greater than RAM) ?

同样,在写入文件时,RAM 的大小不是通常要考虑的问题。 I/O 每个 I/O 命令都可能检测到错误,例如 fprintf() 的 return 值。 fclose() 报告最终将数据写入文件成功。在此之前,该数据可能会被部分写入。研究 fflush() 以帮助确保 select 部分数据在 fclose().

之前写入