Ventajas de utilizar tuberías y sockets con nombre en lugar de archivos temporales

Ventajas de utilizar tuberías y sockets con nombre en lugar de archivos temporales

Tengo dos programas cooperativos. Un programa simplemente escribe su salida en un archivo y el otro luego lee el archivo y escupe los datos para que la interfaz trabaje con ellos.

He estado leyendo sobre canalizaciones con nombre y sockets de dominio, pero tengo problemas para ver qué ventajas ofrecen en comparación con el uso de un archivo temporal. Simplemente me parece una forma formal de comunicarme.

Respuesta1

  1. Si necesita guardar el archivo intermedio una vez finalizado el procesamiento, la comunicación entre procesos (como a través de una tubería o un enchufe) no es particularmente valiosa. De manera similar, si necesita ejecutar los dos programas en momentos muy diferentes, debe hacerlo como lo está haciendo ahora.
  2. Cuando se creó Unix, los discos eran muy pequeños y era común que un comando bastante benigno consumiera todo el espacio libre en un sistema de archivos. Por ejemplo,

    algún_comando_que_produce_a_lote_de_salida| grepalguna_cadena_muy_oscura

    produce una salida que esmuchomás pequeño que el tamaño de la salida del primer comando (es decir, el tamaño del archivo intermedio que se crearía si ejecutara los comandos de la misma manera que ejecuta sus programas).

  3. Los datos que fluyen a través de tuberías y enchufes (probablemente) no se escriben en absoluto en el disco. Por lo tanto, estas soluciones de IPC pueden ser

    • más eficiente (más rápido) que las soluciones basadas en disco.
    • más seguras que las soluciones basadas en disco, si los datos intermedios son más confidenciales que el resultado final.

información relacionada