c - 在 linux c 中使用已知的 key_t 查找 msqid

标签 c linux ipc message-queue

我有两个独立的进程,都使用 msgget() 使用相同的键(key_t = 9189,作为两个进程的 cmd 行 arg 提供)创建消息队列,并且它们成功地发送和接收消息.
现在我有第三个独立的监控进程(提供相同的 key_t = 9189),它与消息无关,但它想监控消息队列的状态,所以我想使用 msgctl() 但它需要 int msqid 作为参数。

---那么如何使用已知的key_t找到msqid呢?
---如果我必须使用 msgget() 来查找 msqid,因为这个监视过程必须监视几个这样的消息队列的状态,不是使用 >msgget() 会为了获取 msqid 而产生开销吗?

最佳答案

只能通过msgget获取msqid,简单明了。

关于c - 在 linux c 中使用已知的 key_t 查找 msqid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53001997/

相关文章:

ios - 一个应用程序如何在不切换应用程序的情况下向另一个应用程序提供数据?

c++ - 200-300位整数的最快整数排序实现?

c++ - C2061 : syntax error : identifier '_TCHAR'

DLL 中的回调?

c - read() 系统调用实际读取的数据量

perl - 与 Perl 的按需进程间通信

c: fopen 和 fprint

子shell进程双向重定向到父进程

linux - 为什么 GPRS 调制解调器提供嵌入式 TCP/IP 堆栈

embedded - 微 Controller 到微 Controller 通信库(通过 UART/RS232)