找回密码
 注册
关于网站域名变更的通知
查看: 294|回复: 3
打印 上一主题 下一主题

Linux进程间通信(6)再来看看信号通信之信号集函数组及其基础实验

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-24 13:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
* K. W+ v" \: A; v$ c; H
Linux进程间通信(6)再来看看信号通信之信号集函数组及其基础实验" z/ l: n$ [" \0 f& A. S1 [
2 s* m; L6 o. ~6 P
信号集函数组
+ D7 S8 d" D& a1 p$ q6 p0 Y5 Q& ^- G2 d! F/ k
函数说明
* i, p" J; x6 @3 G% Q2 q) L' l6 Z+ B& L) s: }
: N8 h$ z& R# b0 A+ ~0 d, `+ u, L
  使用信号集函数组处理信号时设计一系列的函数,这些函数按照先后的调用次序可分为以下几大模块:创建信号集、注册信号处理函数及检测信号。9 V$ J8 T" ?, p% G$ @& I

# g3 U# f4 {/ O+ l7 f
# P' W' s9 R3 B
  其中,创建信号集主要用于处理用户感兴趣的一些信号,其函数包括以下几个:+ U! [" X4 s8 X
) }# E$ W" X* b& a
  E+ n; }5 ?  i+ y  o
  ●  sigemptyset(): 将信号集初始化为空
0 R7 c2 r+ i/ g7 L9 n2 ^1 Z  p7 {: [" H4 m

( F% Q: z9 i$ y, O5 \% F  ●  sigfillset(): 将信号集初始化为包含所有已定义的信号集
9 M: u0 M# K0 p2 \5 a- m( e5 {( A# Q1 m% R) g) K
5 h/ ?: U3 `" y/ M
  ●  sigaddset(): 将指定信号加入到信号集中
+ V# y, w5 ]; e- _* u' ?' z1 U- R4 g
5 r' n9 m. w0 a6 _8 L- T
  ●  sigdelset(): 将指定信号从信号集中删除
/ w8 m& @7 `: y, w0 a% F! F, o* C- V
9 `9 k# \4 P2 w& Z+ o- m; z

; |: x6 Q0 O2 }6 D7 W3 [: M; \  ●  sigismember(): 查询指定信号是否在信号集中& }' c6 }& [2 t9 ?! Z2 ^
! Q  \! A9 k6 a- ~* n$ R; G7 Z

2 m# C& C, I* G$ M* M   注册信号处理函数主要用于决定进程如何处理信号。这里要注意的是,信号集里的信号并不是真正可以处理的信号,只有当信号的状态处于非阻塞状态时才会真正起作用。因此,首先使用 sigprocmask() 函数检测并更改信号屏蔽字(信号屏蔽字是用来指定当前被阻塞的一组信号,它们不会被进程接收),然后使用 sigaction()函数来定义进程接收到特定信号后的行为。0 b$ s1 e2 v4 t8 S6 B& q

6 q( a+ T( O, S! N

; ^; w; i$ X6 s. r+ _8 S   检测信号是信号处理的后续步骤,因为被阻塞的信号不会传递给进程,所以这些信号就处于“未处理”状态(也就是进程不清除它的存在)。sigaction()函数允许进程检测“未处理”信号,并进一步决定对它们做何处理。
: @9 Q" r1 ?0 a+ s
; t/ `( F6 C; K( \

9 t) T9 ]3 F9 E+ Y, k函数格式
! V1 y3 j; Q) O, d! e5 Q, f% n) ^% i7 h6 d* X9 M" s& J9 b

' o5 M- V" y2 Z# u$ w1 i
游客,如果您要查看本帖隐藏内容请回复

. p8 ?1 x% m& R: F0 w- h, \
* F: h# h% _3 |$ L* M+ `, ^$ g  
* `5 k$ \. `5 U6 I1 o! I' J& i. f4 Q$ _# f, P! ?, x

该用户从未签到

3#
发表于 2019-9-24 18:00 | 只看该作者
介绍一下从ramdisk根文件系统启动Linux的具体步骤。

该用户从未签到

4#
发表于 2019-9-26 19:04 | 只看该作者
看看信号通信之信号集函数组及其基础实验。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 01:49 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表