一時ファイルではなく名前付きパイプとソケットを使用する利点

一時ファイルではなく名前付きパイプとソケットを使用する利点

連携するプログラムが 2 つあります。1 つのプログラムは出力をファイルに書き込むだけで、もう 1 つのプログラムはファイルからデータを読み取って、フロントエンドで処理できるように出力します。

名前付きパイプとドメイン ソケットについて読んでいますが、一時ファイルを使用するよりもどのような利点があるのか​​がわかりません。私にとっては、正式な通信方法のように思えます。

答え1

  1. 処理が完了した後に中間ファイルを保存する必要がある場合、プロセス間通信 (パイプやソケット経由など) は特に重要ではありません。同様に、2 つのプログラムを大幅に異なる時間に実行する必要がある場合は、現在行っている方法で実行する必要があります。
  2. Unixが作られた当時はディスクが非常に小さく、比較的無害なコマンドがファイルシステムの空き領域をすべて消費してしまうことはよくありました。たとえば、

    何らかのコマンドが_を生成する_多く出力の| グレップ非常にわかりにくい文字列

    出力は多くの最初のコマンドの出力のサイズ (つまり、プログラムを実行するのと同じ方法でコマンドを実行した場合に作成される中間ファイルのサイズ) よりも小さくなります。

  3. パイプやソケットを流れるデータは(おそらく)ディスクに書き込まれません。したがって、これらのIPCソリューションは

    • ディスクベースのソリューションよりも効率的 (高速) です。
    • 中間データが最終結果よりも機密性が高い場合、ディスクベースのソリューションよりも安全です。

関連情報