Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Comunicarse con proceso

Estas en el tema de Comunicarse con proceso en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/12/2010, 05:40
Avatar de mikeW  
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 8 años, 11 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());*/
}

Etiquetas: proceso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:09.