linux – mmap的大小限制是多少

我使用mmap()将共享内存对象映射到进程.我的问题有两个部分:

1)mmap()到linux进程的大小限制是多少? (有这样的限制吗?)

2)在运行一段时间后,我认为进程虚拟内存地址空间会以某种方式碎片化.这会影响我在这个过程中可以做mmap()的最大尺寸吗?

使用的linux内核是2.6.27.共享内存对象的大小约为32MB.我试图通过没有足够的虚拟地址空间来访问mmap()因这种共享内存对象而失败的可能性.

解决方法:

mmap大小没有限制,但取决于给定进程使用的现有地址空间.但强烈建议您不要映射到大的连续虚拟地址空间.另一个建议是在访问特定物理地址(或设备地址)时使用mmap“及时”,并在完成后取消映射

上一篇:261-查找第一个只出现一次的字符


下一篇:c – 连续调用mmap,任何缓存?