#include #include #include #include #include main() { sigset_t cs, cp; struct sigaction accion; sigemptyset(&cs); //agregamos las señales a ser bloqueadas sigaddset(&cs,SIGTERM); sigprocmask(SIG_BLOCK,&cs,NULL); // indicamos el bloqueo //probamos enviarnos señales kill(getpid( ),SIGTERM); //se auto-envía la señal SIGTERM //checamos si la detecto como pendiente sigpending(&cp); if(sigismember(&cp,SIGTERM)); //sí esta presente { //cambiar su operación antes de desbloquear sigemptyset(&accion.sa_mask); accion.sa_handler=SIG_IGN; sigaction(SIGTERM,&accion,NULL); printf("\n Señal Bloqueada\n"); sleep(3); } //desbloquer al señal sigprocmask(SIG_UNBLOCK,&cs,NULL); printf("\nSeñal Desbloqueada\n"); sleep(3); exit(0); }