typedef void (*sighandler_t)(int);
sighandler_t signal(int signum,sighandler_t handler);
2.sigaction函數函數原型:
int sigaction(int signum, //捕捉的信號
const struct sigaction* act,
struct sigaction* oldact
);
struct sigaction{void (*sa_handler)(int);
void (*sa_sigaction)(int,siginfo_t*,void*);
sigset_t sa_mask; // 在信號處理函數執行過程中,臨時屏蔽指定的信號,若出現要屏蔽的信號,則執行完信號處理函數之後處理該信號
int sa_flags; //填0:表示調用sa_handler
void (*sa_restorer)(void);
};
一般需要處理的參數:sa_handler、sa_mask、sa_flags不屏蔽信號:sigempty(&act.sa_mask);
設置屏蔽信號:sigaddset(&act.sa_mask,SIGQUIT);