我读过几个与此相关的问题(here),但我仍然有些困惑。写系统调用直接写数据到磁盘?
我的理解是写入系统调用会将数据放入Buffered Cache
(该问题中提到的操作系统缓存)。当Buffered Cache
变满时,它被写入磁盘。
缓冲IO在此之上进一步优化。它在C RTL buffers
缓存,当他们得到完整的write
系统调用发出将内容移动到Buffered Cache
。如果我使用fflush
,那么与存在于C RTL buffers
以及Buffered Cache
中的此特定文件有关的数据将被发送到磁盘。
我的理解是否正确?
取决于操作系统,文件打开模式,系统特定的每个文件句柄设置... – Mat