Преимущества использования именованных каналов и сокетов, а не временных файлов

У меня есть две сотрудничающие программы. Одна программа просто записывает свой вывод в файл, а другая затем считывает из файла и выплевывает данные для интерфейса для работы.

Я читал о именованных каналах и сокетах домена, но мне трудно понять, какие преимущества они предлагают просто использовать временный файл. Это просто формальный способ общения со мной.

  • Оболочка: взаимный трубопровод STDIN / STDOUT двух команд
  • Как реализовать «генераторы», такие как $ RANDOM?
  • процесс заблокирован в msgrcv
  • Как увеличить количество массивов семафоров в Linux?
  • В чем смысл объектов dbus?
  • Как передать пароль дочернему процессу?
  • Портирование связующего IPC в Linux
  • Различия между доменными сокетами Unix и сетевыми сокетами?
  • One Solution collect form web for “Преимущества использования именованных каналов и сокетов, а не временных файлов”

    1. Если вам нужно сохранить промежуточный файл после завершения обработки, то межпроцессная связь (например, через трубу или сокет) не особенно ценна. Точно так же, если вам нужно запустить обе программы в совершенно разные времена, вы должны просто сделать это так, как вы делаете это сейчас.
    2. Назад, когда была создана Unix, диски были очень маленькими, и для довольно доброкачественной команды было распространено все свободное пространство в файловой системе. Например,

        some_command_that_produces_a_ lot _of_output |  grep some_very_obscure_string 

      производит вывод, который намного меньше размера вывода первой команды (т. е. размер промежуточного файла, который будет создан, если вы запускаете команды так, как вы запускаете свои программы).

    3. Данные, протекающие по трубам и сокетам (возможно), вообще не записываются на диск. Следовательно, эти решения IPC могут быть

      • более эффективные (быстрее), чем дисковые решения.
      • более безопасные, чем дисковые решения, если промежуточные данные более чувствительны, чем конечный результат.
    Linux и Unix - лучшая ОС в мире.