据我所知,当您使用mmap映射文件时,基本上是将该文件的页面直接映射到您的进程中的页面缓存中。而使用O_DIRECT可以绕过页面缓存。那么,是否有必要同时使用这两种方式呢?如果我的理解是正确的,它们如何协同工作?mmap似乎依赖于文件在页面缓存中,而O_DIRECT似乎会防止文件进入缓存(假设系统上没有其他程序打开该文件)。我在这个问题中找到了答案,但回答者似乎认为同时使用是很正常的。
O_DIRECT
,但是它使用的文件与正在映射的文件不同。 - Barmar