linux中mmap()函数的内存映射问题理解?

mmap()这个函数到底是把 硬盘里的数据映射到物理内存(还是虚拟内存?)中,还是把物理内存中的数据映射到虚拟内存中? 有点晕,我猜测是前者,但不确定。。。

还有,网上说的映射到多个页上是什么意思?物理内存不是连续的么,直接把硬盘上的数据dump到物理内存不就行了。

mmap()的好处一个是节约IO读写时间?(但是,内存映射了之后,最后我要保存的话还是需要把内存上的数据写到硬盘的吧?),还有一个是可以实现共享内存通信是吧?没别的好处了吧?

初次接触,查了资料还是有点晕,所以问题有点多,望各位大神谅解~

阅读 3.8k
2 个回答

好好看看操作系统相关的知识吧,用户态的程序所用到内存都是虚拟内存内存分页也是关于虚拟内存的一项技术

新手上路,请多包涵

是不是看系统调用说明手册会好很多

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题