POSIX消息队列可以由mq_open()创建,它返回mqd_t形式的消息队列描述符。如果其他进程必须通过mq_notify()或mq_receive()接收消息,它需要消息队列描述符作为参数。
有没有办法使用队列名称来获取消息队列描述符?
如果不是,那么在开始使用消息队列之前,如何将消息队列描述符传递给另一个进程?
发布于 2014-11-17 14:48:18
mqd_t mq_open(const char *name, int oflag);消息队列由两个进程通过"name“标识,即调用mq_open中的第一个参数。
打算共享消息队列的两个进程必须事先知道要共享的队列的名称。
如果您使用
int msgget(key_t key, int msgflg); key :用户自定义的值。
此处的"key“值标识跨多个进程的消息队列。
总结一下:
如果两个进程需要共享一个消息队列,它们需要知道"name“(在
mq_open)和“key”(如果是msgget)。
https://stackoverflow.com/questions/26957746
复制相似问题