使用命名管道和套接字而不是臨時檔案的優點

使用命名管道和套接字而不是臨時檔案的優點

我有兩個合作項目。一個程式只是將其輸出寫入文件,另一個程式然後從文件中讀取資料並將資料吐出以供前端使用。

我一直在閱讀有關命名管道和網域套接字的內容,但我很難看出它們與僅使用臨時檔案相比有何優勢。這似乎只是與我交流的正式方式。

答案1

  1. 如果處理完成後需要保存中間文件,那麼進程間通訊(例如透過管道或套接字)並不是特別有價值。同樣,如果您需要在截然不同的時間運行這兩個程序,您應該按照現在的方式進行操作。
  2. 當 Unix 建立時,磁碟非常小,一個相當良性的指令通常會消耗檔案系統中的所有可用空間。例如,

    一些產生a的命令很多_of_輸出| grep一些非常模糊的字串

    產生的輸出是很多小於第一個命令的輸出的大小(即,如果您以執行程式的方式執行命令,則會建立的中間檔案的大小)。

  3. 流經管道和套接字的資料(可能)根本不會寫入磁碟。因此,這些IPC解決方案可能是

    • 比基於磁碟的解決方案更有效率(更快)。
    • 如果中間資料比最終結果更敏感,則比基於磁碟的解決方案更安全。

相關內容