
07/12/2010, 06:40
|
 | | | Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 14 años, 5 meses Puntos: 1 | |
Comunicarse con proceso Hola, tengo unas dudas con la comunicación de procesos vereis estoy intentado que primero hable el padre y a continuación despierte a su segundo hijo y hable el, pero no me funciona. A ver si me podeis hechar una manita. Gracias!
Código:
#include <stdio.h>
#include <signal.h>
void hijo1();
void hijo2();
void padrehijo1();
void padrehijo2();
void error();
int main(int argc, char **argv[]) {
int pidhijo1;
pidhijo1=getpid();
pidhijo1=fork();
switch(pidhijo1) {
case 0: hijo1(); break;
case -1: error(); break;
default: padrehijo1();
}
}
void hijo1() {
/*printf("Soy el hijo 1 %d, y mi padre es %d\n",getpid(),getppid());*/
}
void error() {
printf("Error al crear el hijo\n");
}
void padrehijo1() {
int pidhijo2;
pidhijo2=getpid();
pidhijo2=fork();
switch(pidhijo2) {
case 0: hijo2(); break;
case -1: error(); break;
default: padrehijo2();
}
}
void hijo2() {
int piiid;
piiid=getpid();
pause();
/*printf("Soy el hijo 2 %d, y mi padre es %d\n",getpid(),getppid());*/
}
void padrehijo2(int piiid) {
int status, wpid1,wpid2;
status=wait(wpid1);
status=wait(wpid2);
kill(piiid,SIGUSR1);
printf("Soy el padre!, y ahora va a hablar mi segundo hijo\n");
/*printf("Soy el padre %d, y mi padre es la shell con PID: %d\n",getpid(),getppid());*/
}
|