linux - Linux 中的共享内存(ipc)

标签 linux ipc shared-memory

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

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

最佳答案

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

基本上你创建一个文件:

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”是查找共享段的方法。 (注意标志)

关于linux - Linux 中的共享内存(ipc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5270587/

相关文章:

linux - 如何查找某个目录下文件最多的子目录

linux - 如何grep特定时间段内的日志文件

linux - sd-bus中的 'slot'是什么(C语言)

linux - Squirrelmail 默认页面

pipe - 与多个 child 沟通的僵局

c++ - 在共享内存上使用 volatile 安全吗?

c++ - Boost::网络信号封装

java - 是否可以在Java中使用跨平台sdk的平台特定方法?

c++ - 在不同处理器之间共享内存时需要哪些东西?

c++ - 尝试使用 boost::interprocess::managed_shared_memory::construct<T> 编译应用程序时出错