Consigo que se maten los procesos cuando pasan los 5 segundos, pero no que se envíen las señales SIGUSR1 antes. ¿Alguien podría ayudarme?
Código
int main(int argc, char **argv) { struct sigaction action; sigset_t new_mask, oldmask; int exitcode; action.sa_flags = 0; action.sa_handler = funcion; sigaction(SIGTERM, &action, NULL); sigemptyset(&new_mask); sigaddset(&new_mask, SIGTERM); sigaddset(&new_mask, SIGUSR1); hijo1 = fork(); switch(hijo1) { case 0: kill(hijo2, SIGUSR1); sigprocmask(SIG_BLOCK, &new_mask, &oldmask); sigsuspend(&new_mask); } hijo2 = fork(); switch(hijo2) { case 0: kill(hijo1, SIGUSR1); sigprocmask(SIG_BLOCK, &new_mask, &oldmask); sigsuspend(&new_mask); } signal(SIGALRM, tiempo); alarm(5); wait(&exitcode); wait(&exitcode); }
Mod: Los códigos deben ir en etiquetas GeSHi