2012-02-15 1 views
12

내가어떻게

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);  

} 

는 어떻게 제거합니까 추적 신호 처리기를했습니다 시그널 핸들러를 제거하거나 내가 같은 신호를 사용하는 다른 신호 핸들러를 설정할 수 있도록이 특정 핸들러를 차단합니까? 감사.

답변

16

sigaction(2)을 호출 할 때 함수 포인터 대신 SIG_DFL을 사용하십시오.

+3

또는 기존 신호 처리기를 새 것으로 바꿉니다. 이전 버전을 먼저 제거 할 필요가 없습니다. – mark4o