Tengo un programa lo que hace es crear una estrucutra en la que a partir del proceso padre crea un arbol de hijos, nietos, etc... de forma automatica hasta un maximo de procesos que se les pasa.
Eso yo ya lo tengo implementado mediante una funcion recursiva.
Dejo el codigo de demostracion. Previamente se define una estrucutra de arrays para almacenar los id de los procesos, de cada padre todos sus hijos... y la Funcion crearhijos es una funcion muy similar a esta.
Código:
switch(proceso) { case -1: printf("·Error\n"); break; case 0: sprintf(mensaje,"(v)%d\n",getpid()); write(1,mensaje,strlen(mensaje)); emp[cont].id=getpid(); emp[cont].nHijos=0; if(rand()%2) creaHijo(nProc,argv[2],argc); else /*MUERE*/; break; case -2: break; default: for(i=0;i<=cont;i++) { if(emp[i].id==getpid()) { emp[i].hijos[emp[i].nHijos]=proceso; sprintf(mensaje,"Hijo: %d id : %d _ Padre : %d \n",emp[i].nHijos,emp[i].hijos[emp[i].nHijos],emp[i].id); write(1,mensaje,strlen(mensaje)); emp[i].nHijos++; } }
Mi duda es que ahora mediante señales y mascaras yo tengo que invocar a una funcion manejadora para que elimine los procesos.
Pero es que nose que pasos realmente tengo que dar para lograr todo esto, definirla si pero no se como tengo inicializar la mascara, como hacerle llegar la señal de eliminar, etc...
Si alguien pudiera darme una pista, o que funciones, codigo, etc.. necesito para este ejemplo se lo agradeciera