linux - 这是如何使用 poll(2) 的 posix 队列?

标签 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);

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

最佳答案

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

关于linux - 这是如何使用 poll(2) 的 posix 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904678/

相关文章:

linux - 如何找到 virtio_net 发送队列的地址?

java - 使用链表实现堆栈

c++ - boost::lockfree::queue 在 c++11 中不是无锁的吗?

regex - Text.Regex.Posix 的=~ 运算符在某些模式下无法获取返回值

linux - 如何在bash中将变量分配给同一目录中文件的不同扩展名

linux - 如何在linux中安装旧版本的dotnet版本

linux - 如何 fork bash 脚本

swift - 创建队列和全局队列的区别。 swift 3

c - 我应该包括手册页概要中列出的任何或所有标题吗?

c - 如何使用 lseek 创建有漏洞的文件?