【问题标题】:Share Memory in Linux using C在 Linux 中使用 C 共享内存
【发布时间】:2020-10-16 04:49:41
【问题描述】:

即使当前有其他进程打开共享内存,使用shm_unlink是否安全?

例如:

进程 B shm_open 然后进程 A shm_unlink。流程B可以吗?

【问题讨论】:

    标签: c linux shared-memory


    【解决方案1】:

    是的,如果另一个进程打开了它,调用 shm_unlink 是安全的。根据 shm_unlink 的手册页:

    shm_unlink() 的操作类似于 unlink(2):它删除一个 共享内存对象名称,并且,一旦所有进程都取消映射 对象,取消分配并销毁关联的内容 内存区域。成功 shm_unlink() 后,尝试 shm_open() 同名对象将失败(除非指定了 O_CREAT, 在这种情况下,会创建一个新的、不同的对象)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-18
      • 2011-08-05
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 2018-03-12
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多