Pasar al contenido principal

Tema 8.1 - Tuberías en UNIX

Versión para impresiónSend by email

Las tuberías son herramientas para comunicación entre procesos.

Los métodos importantes son:

  • int pipe (int tubo[2]); 
    • int tubo[2]: Array de dos enteros, donde el primero tubo[0], es la entrada (de donde leo) y tubo[1] es la salida (a donde escribo).
  • write(tubo[1], buff, nbytes); 
    • Espera si está lleno
  • read(tubo[0], buff, nbytes); 
    • Espera si no hay nada

Recubrimientos

Se denomina recubrimientos al reemplazo de código y datos por otro programa (que nunca retorna, ya que finalizan). Se emplea la familia execve (como hacíamos en ARQO).

Para hacer un buen recubrimiento, podemos redirigir las salidas, duplicando los descriptores con el método:

  • int dup2 ( int viejo, int nuevo );

La práctica 5 muestra muy bien el uso de este concepto.