私は最近、Linuxでメッセージキュー(System VでもPOSIXも大丈夫でしょう)で遊んでいましたが、私のアプリケーションには完璧に見えますが、The Art of Unix Programmingを読んだ後は、良い選択。メッセージキューはLinuxでは廃止されていますか?
http://www.faqs.org/docs/artu/ch07s02.html#id2922148
システムV IPCの上部、メッセージパッシング層は、主として使用から落ちました。共有メモリとセマフォからなる下位層は、同じマシン上で実行されているプロセス間で相互排他ロックとグローバルなデータ共有を行う必要がある状況下では依然として重要なアプリケーションを持っています。これらのSystem V共有メモリ機能は、Linux、BSD、MacOS X、Windowsではサポートされていましたが、従来のMacOSではサポートされていないPOSIX共有メモリAPIに発展しました。
http://www.faqs.org/docs/artu/ch07s03.html#id2923376
のSystem V IPC機能は、Linuxや他の現代のUnixに存在しています。しかし、彼らは遺産であるため、頻繁に行使されることはありません。 Linux版には、2003年半ばの時点でまだバグが存在することが知られています。誰もそれを修正するのに十分な注意を払わないようです。
最近のLinuxバージョンでは、System Vメッセージキューはまだバグがありますか?私は、著者がPOSIXメッセージキューが大丈夫であるべきであることを意味するのかどうか分かりません。
(?)ソケットはほとんど何のために好適なIPCているようですが、私はソケットまたは何か他のものとのメッセージキューを実装するのは非常に簡単なことだろうか見ることができません。あるいは私はあまりにも複雑に考えていますか?
私はそれは私が組込みLinuxで働いていることに関連するかどうかわかりませんか?
7年後のことです。うまくいけばあまり関係はありません。「Ubuntu 14.04」、「linux 3」のメッセージキューのデフォルト設定については疑問です。(キュー内のメッセージ)と '/ proc/sys/fs/mqueue/msgsize_max'は8192(バイト)です - これらは奇妙に小さいです。これらのデフォルトのためのいくつかの厳しい理由はありますか、それともちょっと古いのですか? ( 'man mq_overview'はmsg_maxのハード制限が約32768でかなり高いと言います)私は無限のストリームのようなキューを作成するつもりはありませんが、' msg_max'では100-1000ですか? – xealits