¿Quién acaba primero?
Publicado por James Bond (1 intervención) el 19/05/2008 23:12:12
Buenas noches.
Estoy un poco desesperado con la comunicación de procesos usando llamadas al sistema en C y tengo la siguiente duda:
Dado este código, ¿quién acabaría primero, padre o hijo?. Yo diría que hijo, porque padre está esperando a que hijo le envíe dato a través de la pipe. ¿no sería así?
Muchas gracias de antemano.
int main(....){
int p1[2];
int i;
int n=0;
pipe(p1);
switch(fork())
{
case 0:
close(1);
dup(p1[1]);
write(1, &n, sizeof(int));
break;
default:
close(0);
dup(p1[0]);
}
close(p1[0]); close(p1[1]); // *
read(0, &i, sizeof(int));
printf(He recibido un %d", i);
}
Estoy un poco desesperado con la comunicación de procesos usando llamadas al sistema en C y tengo la siguiente duda:
Dado este código, ¿quién acabaría primero, padre o hijo?. Yo diría que hijo, porque padre está esperando a que hijo le envíe dato a través de la pipe. ¿no sería así?
Muchas gracias de antemano.
int main(....){
int p1[2];
int i;
int n=0;
pipe(p1);
switch(fork())
{
case 0:
close(1);
dup(p1[1]);
write(1, &n, sizeof(int));
break;
default:
close(0);
dup(p1[0]);
}
close(p1[0]); close(p1[1]); // *
read(0, &i, sizeof(int));
printf(He recibido un %d", i);
}
Valora esta pregunta
0