彻底销毁System V共享内存段

时间:2012-12-18 18:39:58

标签: c linux

我正在使用shmgetshmatshmctl来分别获取和创建共享内存段,将其附加到进程地址空间并将其删除。

我想知道进程是否仍然可以使用共享内存段,即使它已被分离并要求使用

删除
shmctl(id, IPC_RMID, ...)

在一个过程中。

我无法从手册页获取信息:

  

IPC_RMID标记要销毁的细分受众群。该段仅在最后一个进程分离后才被实际销毁(即,当关联结构shm_nattch的{​​{1}}成员为零时)。呼叫者必须是所有者或创建者,或具有特权。如果某个段已标记为要销毁,则shmid_ds的(非标准)SHM_DEST标记   将设置由shm_perm.mode检索的关联数据结构中的字段。

1 个答案:

答案 0 :(得分:1)

在Linux上,即使已经标记为要删除,也可以附加共享内存段。但是,POSIX.1-2001未指定此行为,许多其他实现不支持它。

相关问题