问题
How can I just check if a message queue exists or not without making it?
When using msgget
with O_CREAT | O_EXCL
flag, if it exists, the call will fail with return value -1, but if it doesn't, it will then create a new message queue. Is there any way to just check?
回答1:
ipcs(1) provides information on the IPC facilities and ipcrm(1) can be used to remove the IPC objects from the system.
List shared memory segments:
ipcs -m
List message queues:
ipcs -q
Remove shared memory segment created with shmkey:
ipcrm -M key
Remove shared memory segment identified by shmid:
ipcrm -m id
Remove message queue created with msgkey:
ipcrm -Q key
Remove message queue identified by msgid:
ipcrm -q id
来源:https://stackoverflow.com/questions/40889356/check-if-a-ipc-message-queue-already-exists-without-creating-it