Tema: Semaforo
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/06/2010, 12:03
Avatar de VelascoCalderon
VelascoCalderon
 
Fecha de Ingreso: agosto-2007
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Semaforo

En definitiva algo asi, pero que alternen ESCRIBE PADRE, LEE HIJO, ESCRIBE HIJO, LEE PADRE, ESCRIBE PADRE, LEE HIJO, ESCRIBE HIJO...


#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);

for (i=0;i<5;i++)
{
if (fork () == 0)
{

write (descr[ESCRIBIR], frase, strlen(frase));
close (descr[ESCRIBIR]);
bytesleidos = read (descr[LEER], mensaje, 100);
printf ("Bytes leidos: %d\n",bytesleidos);
printf ("Mensaje: %s\n", mensaje);
close (descr[LEER]);
}
else
{

write (descr[ESCRIBIR], frase2, strlen(frase2));
close (descr[ESCRIBIR]);
bytesleidos = read (descr[LEER], mensaje2, 100);
printf ("Bytes leidos: %d\n",bytesleidos);
printf ("Mensaje: %s\n", mensaje2);
close (descr[LEER]);
}
}
}