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

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

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

  • Почему часам нужен сегмент разделяемой памяти?
  • У одного конца трубы есть как чтение, так и запись fd?
  • Есть ли способ перехватить межпроцессное взаимодействие в Unix / Linux?
  • Почему очереди сообщений не используются для приложений на системном уровне в ОС Ubuntu?
  • Linux - проверьте статистику IPC
  • IPC: уведомление об отключенной общей памяти
  • Поиск и закрытие / отключение очередей сообщений в системе
  • Предотвращение блокировки экрана ChromeOS при работе с другим типом
  • 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 - лучшая ОС в мире.