Hola amigos, necesito comunicar dos procesos entre si, me da igual que sean padre e hijo o procesos independientes. Necesito establecer un dialogo entre ellos del tipo: LEE PADRE, ESCRIBE PADRE, LEE HIJO, ESCRIBE HIJO, LEE PADRE, ESCRIBE PADRE, LEE HIJO, ESCRIBE HIJO... Tengo desarrollado el codigo que se ve a continuacion, que en principio comunica PADRE e HIJO, pero no de manera recursiva, ¿Alguien podría ayudarme? Gracias de antemano amigos!
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#define LEER 0
#define ESCRIBIR 1
int main ()
{
int descr[2],i;
int bytesleidos;
char mensaje[100],
*frase="HIJO";
char mensaje2[100],
*frase2="PADRE";
printf ("Ejemplon");
pipe (descr);
if (fork () == 0)
{
write (descr[ESCRIBIR], frase, strlen(frase));
close (descr[ESCRIBIR]);
bytesleidos = read (descr[LEER], mensaje, 100);
printf ("Bytes leidos: %dn",bytesleidos);
printf ("Mensaje: %sn", mensaje);
close (descr[LEER]);
}
else
{
write (descr[ESCRIBIR], frase2, strlen(frase2));
close (descr[ESCRIBIR]);
bytesleidos = read (descr[LEER], mensaje2, 100);
printf ("Bytes leidos: %dn",bytesleidos);
printf ("Mensaje: %sn", mensaje2);
close (descr[LEER]);
}
}