美文网首页网络通讯编程
3.5、信号编程进阶、sigprocmask范例

3.5、信号编程进阶、sigprocmask范例

作者: 奥斯特洛司机 | 来源:发表于2019-04-01 14:34 被阅读0次

1、信号集:参照https://www.jianshu.com/p/021336717366
当某个信号来时,信号处理函数正在执行,进程会屏蔽同一种信号。进程必须能够记住当前阻塞了哪些信号。
信号集能够把60多种信号的来和没来都表示到。00000000,00000000........
sigset_t结构体。
2、信号相关函数
sigemptyset(set) 信号集清0 用的多
sigfillset(set) 信号集置1 用的少
//将信号集set中的signum信号对应位置1
int sigaddset(sigset_t* set, int signum); 此时还没有加入进程的信号集需调sigprocmask
//将信号集set中的signum信号对应位清0
int sigdelset(sigset_t* set, int signum);
//成功返回0,失败返回-1
3、sigprocmask等信号函数范例演示
收到信号后并执行完信号处理函数后,sleep返回剩余睡眠秒数。
所以,sleep函数能够被信号打断。
上传代码图:
在信号处理函数中设置信号变为缺省处理,
signal(SIGQUIT, SIG_DFL) 变成系统缺省动作。
当进程再次接收到该信号的时候,系统缺省处理该信号。

相关文章

网友评论

    本文标题:3.5、信号编程进阶、sigprocmask范例

    本文链接:https://www.haomeiwen.com/subject/ckdvbqtx.html