在两个进程之间共享内存

时间:2012-07-20 16:20:29

标签: c linux

我想在两个进程之间共享内存。我知道的一种方法是mmap共享文件。但是,我不想使用共享文件,我想在内存中进行匿名映射。我怎么能这样做。

5 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

shm_open是你的朋友。您可以使用shm_unlink取消映射共享区域。

答案 2 :(得分:2)

您可以将mmap的文件放在/ dev / shm目录中,该目录在大多数Linux系统中作为tmpfs(即基于内存的文件系统)安装。

或者您可以在目录树中的其他位置安装自己的tmpfs(如果您需要其他选项)。

答案 3 :(得分:0)

shm_get是一个很好的起点,但您还需要阅读有关互斥的semaphores内容,以免内存损坏。

答案 4 :(得分:0)

请记住,在NUMA系统上,如果内核位于不同的节点上,它们将以不同的速度访问内存,除非您选择与内核等距的NUMA节点。