我正在使用shmget
,shmat
并shmctl
分别获取和创建一个共享内存段,将其附加到进程地址空间并删除它。
我想知道进程是否仍然可以使用共享内存段,即使它已被分离并要求使用
shmctl(id, IPC_RMID, ...)
在一个过程中。
我无法从手册页获取信息:
IPC_RMID
标记要销毁的段。该段只有在最后一个进程将其分离后才会真正被销毁(即,当shm_nattch
关联结构的成员shmid_ds
为零时)。调用者必须是所有者或创建者,或者具有特权。如果段已被标记为销毁,则将设置 检索到的相关数据结构SHM_DEST
中字段的(非标准)标志。shm_perm.mode
IPC_STAT