gpt4 book ai didi

c - 如何取回现有的消息队列 ID

转载 作者:太空狗 更新时间:2023-10-29 12:06:29 25 4
gpt4 key购买 nike

我正在使用 msgget() 系统调用来获取新的消息队列。我在其中使用了 IPC_CREAT 和 IPC_EXCL 标志。喜欢message_queue = msgget(ftok("/tmp", 100), (0666 | IPC_CREAT | IPC_EXCL));现在,当我的 prog 意外存在时,msg 队列仍然存在,我无法重新创建 msg 队列。所以,我的问题是“我怎样才能取回现有消息队列的 ID?”

顺便问一下,msg queue 在哪里存储它的 id?

最佳答案

注册“我怎样才能取回现有消息队列的 ID?”

来自 man msgget

   If  msgflg  specifies both IPC_CREAT and IPC_EXCL and a message queue already exists for key, then msgget() fails with errno set to EEX-
IST. (This is analogous to the effect of the combination O_CREAT | O_EXCL for open(2).)

尝试不使用 IPC_EXCL 标志。

注册。 msg 队列在哪里存储它的 id

来自 man proc

   /proc/sysvipc
Subdirectory containing the pseudo-files msg, sem and shm. These files list the System V Interprocess Communication (IPC)
objects (respectively: message queues, semaphores, and shared memory) that currently exist on the system, providing similar
information to that available via ipcs(1). These files have headers and are formatted (one IPC object per line) for easy under-
standing. svipc(7) provides further background on the information shown by these files.

关于c - 如何取回现有的消息队列 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com