Linux 如何使用具有无限超时的POSIX消息队列?

Linux 如何使用具有无限超时的POSIX消息队列?,linux,message-queue,Linux,Message Queue,我正在尝试发送/接收消息,但未指定任何超时。所以,我需要一个无限的超时。VxWorks在不限制超时的情况下提供了“永远等待”。但在Linux中,这是不可用的。定义MQ\u WAIT\u FOREVER时应给出哪个值 定义MQ_永远等待 时钟获取时间(时钟实时和当前时间) /*计算发送的超时值*/ abs_timeout.tv_sec=currenttime.tv_sec+(MQ_WAIT_FOREVER/1000000) abs_timeout.tv_nsec=currenttime.tv_n

我正在尝试发送/接收消息,但未指定任何超时。所以,我需要一个无限的超时。VxWorks在不限制超时的情况下提供了“永远等待”。但在Linux中,这是不可用的。定义
MQ\u WAIT\u FOREVER
时应给出哪个值

  • 定义MQ_永远等待

  • 时钟获取时间(时钟实时和当前时间)

  • /*计算发送的超时值*/

    abs_timeout.tv_sec=currenttime.tv_sec+(MQ_WAIT_FOREVER/1000000)

    abs_timeout.tv_nsec=currenttime.tv_nsec+(MQ_WAIT_FOREVER/1000)

提前多谢


Gökce

默认情况下,
mq_send
阻塞直到有队列空间,
mq_receive
阻塞直到有东西要接收(假设未设置O_NONBLOCK)。你需要什么,这没有提供?张贴代码,给你的问题。