栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

信号编程进阶 - Linux C++网络编程(十)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

信号编程进阶 - Linux C++网络编程(十)

一:信号集

一个进程,必须能够记住 这个进程 当前阻塞了哪些信号

000000000000000000000

我们需要 “信号集 ”的这么一种数据类型(结构),能够把这60多个信号都表示下(都装下)。

0000000000,0000000000,0000000000,00,0000000000,0000000000,0000000000,00 (64个二进制位)

linux 是用sigset_t结构类型来表示信号集的;

typedef struct{

    unsigned long sig[2];

}sigset_t

信号集的定义:信号集表示一组信号的来(1)或者没来(0)

信号集相关的数据类型: sigset_t;

二:信号相关函数

a)sigemtpyset():把信号集中的所有信号都清0,表示这60多个信号都没有来;

00000000000000000000000000.....

b)sigfillset();把信号集中的所有信号都设置为1,跟sigemptyset()正好相反;

11111111111111111111111111.....

c)用sigaddset(),sigdelset()就可以往信号集中增加信号,或者从信号集中删除特定信号;

d)sigprocmask,sigmember

一个进程,里边会有一个信号集,用来记录当前屏蔽(阻塞)了哪些信号;

    如果我们把这个信号集中的某个信号位设置为1,就表示屏蔽了同类信号,此时再来个同类信号,那么同类信号会被屏蔽,不能传递给进程;

    如果这个信号集中有很多个信号位都被设置为1,那么所有这些被设置为1的信号都是属于当前被阻塞的而不能传递到该进程的信号;

sigprocmask()函数,就能够设置该进程所对应的信号集中的内容;

三:sigprocmask等信号函数范例演示

sleep()函数能够被打断:

    (1)时间到达了;

    (2)来了某个信号,使sleep()提前结束,此时sleep会返回一个值,这个值就是未睡够的时间;

sigaction()函数;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/847053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号