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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
3 J1 S2 F" A/ a7 x
Linux进程间通信(6)再来看看信号通信之信号集函数组及其基础实验+ v5 T; d/ O# t1 t. `: ~7 G

% b7 j8 P: b. B8 n( |  V0 I) c5 b信号集函数组
1 L9 s$ p2 n7 j
% y; |* T; Q- Y+ I( d9 C7 q函数说明
+ B* G; a6 C. x8 L. r4 D
3 T& X2 p! l& @8 F  P. o6 r1 d( e

3 P. r8 s; @" p% X  使用信号集函数组处理信号时设计一系列的函数,这些函数按照先后的调用次序可分为以下几大模块:创建信号集、注册信号处理函数及检测信号。
9 m! q/ @) S1 L
" I9 \- }+ Q& a! M, H& m' H
; |4 n# H! z% Y) [7 \
  其中,创建信号集主要用于处理用户感兴趣的一些信号,其函数包括以下几个:
6 D/ N, G% N5 }' m7 Z4 n8 t) G4 W! Q8 \7 h5 n, b
& R  k/ K7 C; h5 X+ j) C; X
  ●  sigemptyset(): 将信号集初始化为空+ V) c& ?7 t1 U+ f
  [: p, P8 M: m- @' I) a
: ^* @2 c! W. c) V
  ●  sigfillset(): 将信号集初始化为包含所有已定义的信号集2 h6 L% }8 w  k$ ~* M

$ o+ @( S! S& `

; s! V9 x6 h9 B3 _7 |. z  ●  sigaddset(): 将指定信号加入到信号集中
- L6 h6 Q" @$ k& z6 E9 y3 n# F; q$ [, p/ m  t# d, I

& a4 i# E5 X* @8 f  ●  sigdelset(): 将指定信号从信号集中删除( i+ m. ^" a: P4 Z* K! f2 w( Z4 d- t6 K
# Z, Q7 Y+ @0 L5 t
# A/ K1 t2 k) x8 N7 `
  ●  sigismember(): 查询指定信号是否在信号集中
+ y5 \  @4 i. t; [* g3 Z+ v. [+ }# o+ `4 c
, M0 f* l  S6 z; I- f. {0 {
   注册信号处理函数主要用于决定进程如何处理信号。这里要注意的是,信号集里的信号并不是真正可以处理的信号,只有当信号的状态处于非阻塞状态时才会真正起作用。因此,首先使用 sigprocmask() 函数检测并更改信号屏蔽字(信号屏蔽字是用来指定当前被阻塞的一组信号,它们不会被进程接收),然后使用 sigaction()函数来定义进程接收到特定信号后的行为。/ O; o+ W  ~* R" h  H9 S+ u

/ q2 f% X/ E7 f6 a. l) H
% x" q, l) G0 ~
   检测信号是信号处理的后续步骤,因为被阻塞的信号不会传递给进程,所以这些信号就处于“未处理”状态(也就是进程不清除它的存在)。sigaction()函数允许进程检测“未处理”信号,并进一步决定对它们做何处理。
) X0 X5 d, j  @7 |# @1 X
2 {, w; _- y& S5 V  t# _

/ j; _: F# t9 k$ a: P1 d4 ]. q% ^函数格式# g7 e/ z" I9 V0 c$ @5 k+ J) J

4 w# m* o* z0 h/ e% I  S
% [7 W: `8 ]/ J5 w
游客,如果您要查看本帖隐藏内容请回复

' C3 l: k8 u/ H: D/ y" c6 P- o* Q  ?" }* y
  
, @# ~* Q6 B) M' {# Y9 |6 I
8 e7 W, S* e' |* L8 {9 O$ ?) V

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 02:57 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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