13/06/2010, 12:03
|
| | | Fecha de Ingreso: agosto-2007
Mensajes: 80
Antigüedad: 17 años, 3 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]);
}
}
} |