如何使用shm_open打开现有的共享内存对象

时间:2014-10-28 09:09:45

标签: linux shared-memory

如果不退出,我不想创建新的共享内存对象。而是在这种情况下返回错误。我想只有在已经存在的情况下才打开。

1 个答案:

答案 0 :(得分:4)

阅读shm_overview(7)& shm_open(3)

如果shm_open 没有 O_CREAT标志,如果名称不存在则会失败,如open(2)那样。如果给出O_CREAT O_EXCL,则如果名称存在,它也将失败。在shm_open(3)中可以说失败可能发生在:

  

ENOENT     尝试shm_open()一个不存在的名称,                 并且没有指定O_CREAT。

     

EEXIST O_CREAT和O_EXCL都被指定为shm_open()和                 由name指定的共享内存对象已存在。

在某些Linux系统上,您可以使用/dev/shm/来了解当前的POSIX共享内存段。