假设我使用 msgget() 函数创建了 100 个消息队列。
------ Message Queues --------
key msqid owner perms used-bytes messages
0x00000000 262144 bhuvaneshw 666 40 2
0x00000000 294913 bhuvaneshw 666 40 2
0x00000000 327682 bhuvaneshw 666 40 2
0x00000000 360451 bhuvaneshw 666 40 2
0x00000000 393220 bhuvaneshw 666 40 2
0x00000000 425989 bhuvaneshw 666 55 3
....
.....
....
使用 ipcrm
命令,我们可以一次删除单个队列。
ipcrm -q queue_id
或者使用 msgctl()
我们可以删除它。但我想一次性删除所有消息队列。有没有办法在 Linux 中做到这一点?
最佳答案
ipcrm 可以做到这一点:
ipcrm --all=msg
您可以使用 sem 和 shm 代替 msg 来获取信号量和共享内存。
关于c - 如何删除所有 IPC-Message 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28086492/