2012-02-15 28 views
12

Tôi đã thực hiện xử lý tín hiệu theoLàm thế nào để tôi xóa trình xử lý tín hiệu

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

} 

Làm thế nào để loại bỏ hoặc chặn xử lý đặc biệt này để tôi có thể thiết lập một xử lý tín hiệu có sử dụng các tín hiệu giống nhau không? Cảm ơn.

Trả lời

16

Sử dụng SIG_DFL thay cho con trỏ hàm khi gọi sigaction(2).

+3

hoặc chỉ thay thế trình xử lý tín hiệu hiện tại bằng trình xử lý tín hiệu mới; không cần phải loại bỏ cái cũ trước. – mark4o

Các vấn đề liên quan