示例 mq_timedreceive

Example mq_timedreceive

我找不到如何正确使用 mq_timedreceive,谁能给我一个例子吗?

ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr,
                   size_t msg_len, unsigned *msg_prio,
                   const struct timespec *abs_timeout);

我希望 timereceive 等待的时间不要超过 20 秒。

非常感谢。

struct   timespec tm;

clock_gettime(CLOCK_REALTIME, &tm);
tm.tv_sec += 20;  // Set for 20 seconds
if( 0 > mq_timedreceive( fd, buf, 4096, NULL, &tm ) )  {
  ...
}

查看完整说明here