Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Por qué aparece una señal definida por el usuario al enviar una señal? Foro 1-CSDN

¿Por qué aparece una señal definida por el usuario al enviar una señal? Foro 1-CSDN

Hola, estaré encantado de responder a tu pregunta. La solución es la siguiente:

act.sa_sigaction = NULL; ¡Después de eliminar esta línea, no habrá problema!

#include

#include

#include

#include

void sigusr1_handler(int signo)

{

printf("captura SIGUSR1\n");

sleep(15);

printf("volver a principal\ n");

}

int main(void)

{

struct sigaction act;

act.sa_handler = sigusr1_handler;

act.sa_flags = SA_NODEFER;

sigemptyset(&act.sa_mask);

if(sigaction(SIGUSR1, & amp;act , NULL) == -1)

{

perror("no se pudo configurar el controlador para SIGUSR1");

exit(1);

}

printf("proceso comenzar\n");

dormir(15);

printf("hecho\n");

return 0;

}

Si mi respuesta no le resulta útil, haga un seguimiento. Reimpreso sólo como referencia.