Estoy escribiendo un programa que lee un fichero txt línea por línea y le envía unas variables a un proceso hijo que creo con un fork(). El proceso hijo debe mantenerse activo durante toda la ejecución del proceso padre a la espera de que este le envie los datos y aqui llega lo bueno, cuando le envío los datos mediante un pipe ( write(p[1],&variable,10) ) al proceso hijo, este los rescibe y los procesa, mientras el padre espera que acabe de procesarlos, entonces cuando quiero volver a enviarle otro dato, ya no le llegan al hijo, ya que parece que como ha acabado se cierra o ya sea porque le cierro el pipe en el proceso padre tras el primer envío. El problema es que si no le cierro el pipe tras el primer envío, el proceso padre no llega al final, y si se lo cierro solo le envia el primer dato.
Padre:
Código:
write(p[1],&variable1,10);
close(p[1]);
wait(NULL)
Hijo
Código:
read(p[0],&var,10);
close(p[0])
El proceso padre esta en un bucle que lo que quiere es que le envie el dato al hijo, este lo procese y seguidamente el padre continue con el bucle para volver a repetir. Y el problema esque tras el primer procesamiento del dato por parte del hijo, ya no hay manera de llegar a enviarle o que reciba otro dato, nose como mantenerlo a la espera escuchando.
Gracias!!
Perdón si me explico un poco mal, pero ando algo perdido.