我正在处理一个共享内存应用程序,为了删除这些段,我使用以下命令:
ipcrm -M 0x0000162e (this is the key)
但我不确定我是否做了正确的事情,因为当我运行ipcs
时,我看到相同的段,但是键为0x0000000。那么内存段真的被删除了吗?当我多次运行我的应用程序时,我会看到不同的内存段,其键为0x000000,就像这样:
key shmid owner perms bytes nattch status
0x00000000 65538 me 666 27 2 dest
0x00000000 98307 me 666 5 2 dest
0x00000000 131076 me 666 5 1 dest
0x00000000 163845 me 666 5 0
到底发生了什么?内存段真的被删除了吗?
编辑: 如下所述,问题在于有两个进程正在使用共享内存,直到所有进程都关闭后,内存段才会消失。