パイプとメッセージ キューの違いは何ですか?
vxworks と unix の両方の観点から説明してください。
パイプは一方向だと思いますが、メッセージ キューはそうではありません。
しかし、パイプは内部でメッセージ キューを使用しないでください。では、なぜパイプは単方向であるのに、メッセージ キューはそうではないのでしょうか?
他に考えられる違いは何ですか (デザイン、使用法、またはその他の観点から)?
パイプとメッセージ キューの違いは何ですか?
vxworks と unix の両方の観点から説明してください。
パイプは一方向だと思いますが、メッセージ キューはそうではありません。
しかし、パイプは内部でメッセージ キューを使用しないでください。では、なぜパイプは単方向であるのに、メッセージ キューはそうではないのでしょうか?
他に考えられる違いは何ですか (デザイン、使用法、またはその他の観点から)?
メッセージ キューは次のとおりです。
パイプ
今思いつくのはそんなところです。
メッセージ キューとパイプの比較: - 1 つのメッセージ キューを使用して、両方向にデータを渡すことができます - メッセージを先入れ先出し方式で読み取る必要はありませんが、代わりに選択的に処理できます ソース: http://wwwを参照してください.cs.vsb.cz/grygarek/dosys/IPC.txt
UNIXの IPC にもこの違いがありました。それらの違いは、メッセージキューとパイプは、最初に情報をパケットに保存/取得することであると述べています。パイプは文字ごとにそれを行いますが。
メッセージ キュー:
メッセージ キュー: パイプに似た匿名データ ストリームですが、情報をパケットで格納および取得します。
パイプ
パイプ: 標準入力と標準出力を介してインターフェースされ、文字単位で読み取られる双方向のデータ ストリーム
ここでもこの質問を見つけました: Pipe vs msg queue
「VxWorks パイプは UNIX パイプとは大きく異なります」と vxWorks のドキュメントには書かれていますが、冗談ではありません。 これがマンページです。
Unix パイプと vxWorks パイプの唯一の類似点は、それらが IPC の形式であると言っても過言ではないようです。機能が異なり、API も異なり、実装も大きく異なります。
MQ にはカーネル永続性があり、複数のプロセスで開くことができます。