linux中的共享内存(ipc)

时间:2011-03-11 08:27:29

标签: linux ipc shared-memory

共享内存意味着一个进程将创建其他进程可以访问的内存部分。

我的问题是:其他进程如何知道创建的共享内存shmid(即shmid=shmget(key-t ,size , permission);)?

2 个答案:

答案 0 :(得分:0)

简化:创建共享内存的过程定义名称和权限(登录用户的进程)。

基本上你创建了一个文件:

file_descriptor = shm_open("/some.shared.memory", 
                   (O_CREAT | O_RDWR),
                   (S_IREAD | S_IWRITE))  

如果它存在,您可以打开它:

file_descriptor = shm_open("/some.shared.memory",
                   (O_CREAT | O_EXCL | O_RDWR),
                   (S_IREAD | S_IWRITE))

因此,名称“/some.shared.memory”是您查找共享段的方式。 (注意标志)

答案 1 :(得分:0)

他们需要使用相同的方法来派生key_t;通常你使用ftok函数,其中双方使用相同的文件名和id值,因此它们最终使用相同的密钥。