今天再学socket带外数据时,用到SIGURG
用的sigaction可靠的函数
int sigaction(int signum, struct sigaction* sa, struct sigaction* old_sa);
struct sigaction {
void(* sa_handler)(int);
void(* sa_sigaction)(int, siginfo_t*, void*);
sigset_t sa_mask;
int sa_flags;
}
其中sa_mask是指信号句柄执行的时候所要阻塞的信号!而不是指进程执行的时候屏蔽的信号(需要用sigprocmask),其中sigkill和sigstop不能被阻塞。信号句柄执行的时候,自动将正在执行的信号加入到sa_mask中,除非在sa_flags中设置了SIG_NODEFER(等同于singal)
阅读(2661) | 评论(0) | 转发(0) |