2012-02-15 14 views
12

He hecho el manejador de señales seguimiento¿Cómo se quita un manejador de señales

struct sigaction pipeIn; 
pipeIn.sa_handler = updateServer; 
sigemptyset(&pipeIn.sa_mask); 
sa.sa_flags = SA_RESTART; 

if(sigaction(SIGUSR1, &pipeIn, NULL) == -1){ 

    printf("We have a problem, sigaction is not working.\n"); 
    perror("\n"); 
    exit(1);  

} 

¿Cómo puedo eliminar o bloquear este controlador particular, de modo que pueda establecer otro manejador de señales que utiliza la misma señal? Gracias.

Respuesta

16

Use SIG_DFL en lugar del puntero a la función al llamar al sigaction(2).

+3

o simplemente reemplace el manejador de señal existente con el nuevo; no es necesario quitar el anterior primero. – mark4o

Cuestiones relacionadas