sig.sa_sigaction = sig_habdler; sig.sa_flags = SA_SIGINFO; if(-1 == sigaction(num,&sig,NULL)) { perror(""); exit(-1); }每一句话都是什么意思
时间: 2024-06-04 21:09:48 浏览: 144
linux-sig.rar_linux sig 10
这段代码是用来注册信号处理函数的,具体解释如下:
1. `sig.sa_sigaction = sig_habdler;`:将 `sig_habdler` 函数设置为信号处理函数,即当收到指定信号时,会执行 `sig_habdler` 函数。
2. `sig.sa_flags = SA_SIGINFO;`:设置 `SA_SIGINFO` 标志,表示在执行信号处理函数时,将传递额外的信息给信号处理函数。
3. `if(-1 == sigaction(num,&sig,NULL)) {perror("");exit(-1);}`:注册信号处理函数。其中,`num` 是指定的信号编号,`&sig` 是指向 `struct sigaction` 结构体的指针,`NULL` 表示不需要保存旧的信号处理函数。如果注册失败,会输出错误信息并退出程序。
阅读全文