C - 系统 V - 删除共享内存段

C - System V - remove shared memory segment

我在 System V IPC 中使用共享内存。我使用以下命令使用键创建段:

shmid1 = shmget(key1,1024,0666|IPC_CREAT);

现在,我正在尝试 close/remove 共享内存段。

我正在使用以下命令来验证它是否存在:

sm_id = shmget(roomNumber, 1024, IPC_EXCL | 0666);

如果程序中断,我需要它具有值 -1 或类似值。所以我需要在程序中断之前删除该段。我怎样才能做到这一点?我阅读了 ipcrm 但不确定如何使用它。

谢谢

作为说明如何将共享内存段标记为销毁的评论的后续内容:

shmid1 = shmget(key1,1024,0666|IPC_CREAT);
...
shmctl(shmid1, IPC_RMID, NULL)