我想在两个进程之间共享内存。我知道的一种方法是mmap
共享文件。但是,我不想使用共享文件,我想在内存中进行匿名映射。我怎么能这样做。
答案 0 :(得分:3)
共享内存就是您想要的:http://en.wikipedia.org/wiki/Shared_memory
既然您使用的是Linux,请转到http://www.kernel.org/doc/man-pages/online/pages/man7/shm_overview.7.html
答案 1 :(得分:3)
shm_open是你的朋友。您可以使用shm_unlink取消映射共享区域。
答案 2 :(得分:2)
您可以将mmap的文件放在/ dev / shm目录中,该目录在大多数Linux系统中作为tmpfs(即基于内存的文件系统)安装。
或者您可以在目录树中的其他位置安装自己的tmpfs(如果您需要其他选项)。
答案 3 :(得分:0)
shm_get是一个很好的起点,但您还需要阅读有关互斥的semaphores内容,以免内存损坏。
答案 4 :(得分:0)
请记住,在NUMA系统上,如果内核位于不同的节点上,它们将以不同的速度访问内存,除非您选择与内核等距的NUMA节点。