• Domingo 19 de Mayo de 2024, 16:28

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - seiken1986

Páginas: [1]
1
C/C++ / Pipe
« en: Lunes 14 de Junio de 2010, 16:09 »
Hola amigos, alguien me podría indicar algun ejemplo de pipes de comunicacion entre procesos. He probado con ejemplos y soy capaz de comunicar dos procesos, pero lo que necesito es que se comuniquen de forma recursiva, es decir, que pueda habla el proceso uno, hablar el proceso dos, hablar el proceso uno, hablar el proceso dos...

Gracias de antemano a todos por vuestra ayuda

2
C/C++ / Comunicacion entre procesos
« en: Lunes 14 de Junio de 2010, 10:39 »
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]);
}
}

Páginas: [1]