Linux 这就是如何使用带有轮询(2)的posix队列吗?

Linux 这就是如何使用带有轮询(2)的posix队列吗?,linux,queue,posix,polling,Linux,Queue,Posix,Polling,我在好几个地方读到过,你可以使用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); 但这是行不通的,我希望有一个PO

我在好几个地方读到过,你可以使用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或pollrdorm,或可能是POLLRDBAND或其他什么东西会出现,但事实并非如此。我很确定我的描述符在PollFd数组中。我是做错了什么,还是这是正确的,问题是代码中还有什么地方?(我使用的是OpenSuse,这是一种linux,所以我猜这应该可以用)。

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

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

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