【问题标题】:is this how to use a posix queue with poll(2)?这是如何在 poll(2) 中使用 posix 队列?
【发布时间】:2012-08-10 23:44:27
【问题描述】:

我在几个地方读到过,您可以将 poll(2) 与 posix 队列一起使用,但我在互联网上没有找到一个简单的示例。所以我推测它应该是这样的

mq_send(socket->mFd, (const char*)data->getBuffer(), data->getLen(), 0 );
//and then in an other porcess here is my poll
::poll(m_descriptors, ii, msecWaitTime);

但这不起作用,我希望 POLLIN 或 POLLRDNORM 或可能 POLLRDBAND 或任何东西到达,但它没有。而且我很确定我的描述符在 PollFd 数组中。我做错了什么,或者这是正确的,问题出在我的代码中的其他地方? (我在 OpenSuse 上,它是一个 linux,所以我猜这应该可以工作)。

【问题讨论】:

  • 您可以在某些操作系统上,例如linux。但是请显示您的所有代码,因为当前的 2 行并没有告诉我们任何重要的信息。显示您在 m_descriptors 中设置消息队列描述符的位置,显示类型以及如何计算 ii 等。
  • 您好,代码庞大且分类,但如果错误是我错误地设置了 m_descriptors 和 ii,那么我会进一步调查。我只需要知道,这个例子在理论上是否正确并且应该起作用,或者这不是这些队列应该被轮询的方式。

标签: linux queue posix polling


【解决方案1】:

好的,NOS 是对的。这个例子在理论上是正确的,它在我的 OpenSuse 上确实有效,我的错误是忘记填写这个 fd 的事件掩码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 2012-03-09
    • 1970-01-01
    • 2020-11-27
    • 2016-06-03
    • 2013-04-16
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多