我在几个地方读到过可以将 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,所以我猜这应该可行)。
最佳答案
好的,NOS 是对的。这个例子在理论上是正确的,它确实在我的 OpenSuse 上工作,忘记为这个 fd 填写事件掩码是我的错误。
关于linux - 这是如何使用 poll(2) 的 posix 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904678/