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.