mmap一个10 GB的文件并加载到内存中

如果我想要mmap一个10 GB的文件并立即将整个文件加载到物理内存中,我该怎么做?
我不想使用像mlock这样的函数,因为它需要root权限。
有没有可以满足我的需求的系统调用?

(我有足够的内存。)

Solutions Collecting From Web of "mmap一个10 GB的文件并加载到内存中"

阅读mmap的手册页 :

MAP_POPULATE(自Linux 2.5.46开始)

填充(缺省)页面表的映射。 对于文件映射,这会导致文件上的预读。 以后访问映射不会被页面错误阻塞。 自Linux 2.6.23以来, MAP_POPULATE仅支持专用映射

发出您的请求,并准备好等待(除非您超出进程限制)(取决于磁盘带宽和缓存)。