我最近在Linux中一直在使用消息队列(系统V,但是POSIX也可以),它们对于我的应用程序似乎很完美,但是在阅读了《 Unix编程的艺术》之后,我不确定它们是否真的是一个不错的选择。
http://www.faqs.org/docs/artu/ch07s02.html#id2922148
System V IPC的上层消息传递层已大大停用。在需要执行互斥锁定和在同一台计算机上运行的进程之间进行一些全局数据共享的情况下,由共享内存和信号量组成的较低层仍然具有重要的应用程序。这些System V共享内存功能演变为POSIX共享内存API,在Linux,BSD,MacOS X和Windows下受支持,但经典MacOS不支持。
http://www.faqs.org/docs/artu/ch07s03.html#id2923376
Linux和其他现代Unix中都有System V IPC功能。但是,由于它们是传统功能,因此并不经常使用。到2003年中期为止,Linux版本仍存在错误。似乎没有人足够在意修复它们。
在最新的Linux版本中,System V消息队列是否仍然存在错误?我不确定作者是否认为POSIX消息队列应该正常吗?
似乎套接字是几乎所有对象(?)的首选IPC,但是我看不到用套接字或其他方法实现消息队列是多么简单。还是我想得太复杂了?
我不知道与嵌入式Linux合作是否有意义?
Ubuntu 14.04
,linux 3.13
即cat /proc/sys/fs/mqueue/msg_max
表10(在队列中的消息)和/proc/sys/fs/mqueue/msgsize_max
8192(字节) -他们是奇怪的小。这些默认值是否存在严格的原因,或者它们太旧了?(man mq_overview
msg_max的硬限制约为32768,这是很高的。)我不是要创建像流一样的无限队列,但是100-1000可以msg_max
吗?