いくつかの答えを見つけましたが、それらは特にWindowsマシンに関連しているようです。だから私の質問は、パイプとソケットの違いは何ですか、いつ/どのように他のものを選択する必要がありますか?
パイプとソケットの違いは何ですか?いつ、どのようにどちらを選択する必要がありますか?
パイプとソケットの両方がバイトストリームを処理しますが、異なる方法で処理します...
使用法:
read()
およびwrite()
をパイプに接続します。Mikeの答えを完成させるために、UNIXドメインソケットの存在に言及することが重要です。UNIXドメインソケットは、POSIX準拠のオペレーティングシステムで利用できます。使用セマンティクスの点では「通常の」インターネットソケットに非常に似ていますが、それらはマシンに対して純粋にローカルであり(もちろんインターネットソケットもローカルで動作します)、したがってパイプのようにほとんど動作します。ほとんどの場合、UNIXパイプは定義上単方向であるためです。
パイプとFIFO(名前付きパイプとも呼ばれます)は、単方向のプロセス間通信チャネルを提供します。パイプには、読み取り終了と書き込み終了があります。パイプの書き込み側に書き込まれたデータは、パイプの読み取り側から読み取ることができます。 ( manページpipe(7) からの抜粋)
UNIXドメインソケットには、データの他にファイル記述子の送信も許可されるため、非常に珍しい機能もあります。この方法では、非特権プロセスは、ソケットを介して記述子が送信されました。ウィキペディアによると、この手法はClamAVウイルス対策スキャンデーモンによって使用されます。