Vantagens de usar pipes e soquetes nomeados em vez de arquivos temporários

Vantagens de usar pipes e soquetes nomeados em vez de arquivos temporários

Tenho dois programas de cooperação. Um programa apenas grava sua saída em um arquivo e o outro lê o arquivo e cospe os dados para o front-end trabalhar.

Tenho lido sobre pipes nomeados e soquetes de domínio, mas estou tendo problemas para ver quais vantagens eles oferecem ao usar apenas um arquivo temporário. Parece apenas uma forma formal de comunicação comigo.

Responder1

  1. Se você precisar salvar o arquivo intermediário após a conclusão do processamento, a comunicação entre processos (como por meio de um tubo ou soquete) não será particularmente valiosa. Da mesma forma, se você precisar executar os dois programas em momentos muito diferentes, faça-o da maneira que está fazendo agora.
  2. Na época em que o Unix foi criado, os discos eram muito pequenos e era comum que um comando bastante benigno consumisse todo o espaço livre em um sistema de arquivos. Por exemplo,

    algum_comando_que_produz_a_muito_de_saída| grepalguma_muito_obscura_string

    produz uma saída que émuitomenor que o tamanho da saída do primeiro comando (ou seja, o tamanho do arquivo intermediário que seria criado se você executasse os comandos da mesma forma que executa seus programas).

  3. Os dados que fluem através de pipes e soquetes (provavelmente) não são gravados no disco. Portanto, essas soluções IPC podem ser

    • mais eficiente (mais rápido) do que soluções baseadas em disco.
    • mais seguras do que soluções baseadas em disco, se os dados intermediários forem mais sensíveis que o resultado final.

informação relacionada