我想我会使用 Boost.Interprocess 的消息队列代替套接字在一个主机内进行通信。但是在深入研究之后,似乎这个库出于某种原因避开了 POSIX 消息队列工具(我的 Linux 系统支持),而是在 POSIX 共享内存之上实现。界面非常相似,您可能不会马上猜到,但似乎确实如此。
对我来说不利的是,shm_open(3)
与select(2)
通过mq_open(3)
.
在这种情况下,Boost 的库似乎丢失了。有谁知道为什么会这样?即使 POSIX 消息队列仅在某些系统上可用,我希望 Boost 在可用的地方使用该工具,并仅在必要时重新实现它。POSIX 系统是否存在一些我还不认识的缺陷?