|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 mytomorrow 于 2019-9-24 13:28 编辑 2 q7 o7 n) N6 j# ]& d
% Q9 D8 A, ^: c. c! r" @6 mLinux进程间通信(5)再来看看信号通信之signal()函数及其基础实验
. q0 S7 [& B5 d7 h/ O( u9 E+ t
: }# |6 o& W: U& p2 ^ 上一节介绍进程间通信方式之一信号通信中的信号产生和捕捉函数,这一节介绍信号处理函数signal()函数和信号集函数组,接上一节:Linux进程间通信(4)这节看看信号通信之信号发送捕捉kill()、raise()、alarm()、p...4 J) p3 z* N6 z$ M% n& d7 A
: P2 D3 v: x9 f3 r9 p强烈建议做最后一个实验!, z* i: A) {6 d. H, ]6 J
" a" @' I7 ]2 L. f% F
信号处理方法
6 y: r1 b7 [7 ?) q$ K% b. A- Y0 H1 _( a& q' F& o. t0 e1 A; @9 u
信号处理的方法主要有以下两种:2 R! H$ {( |2 w6 C8 L0 T( A
/ M8 N9 {4 J4 V1 Z' E5 r
① 使用 signal() 函数;. t- H) }) {1 A- X- n J; t, F
" |0 [8 C7 E$ X
② 使用信号集函数组。4 u2 O2 c6 M$ v, B! p
- r! ]* v7 L* P4 u/ J使用signal()函数" V9 k7 H4 U) \
5 q4 G) |# E+ |6 |函数说明
# E+ [1 G0 W9 Q/ ]" s3 Q# @" X, S% P" ]2 A
使用signal()函数处理时,只需指出要处理的信号和处理函数即可。它主要用于前32种非实时信号的处理,不支持信号传递信息。Linux还支持一个更健壮更新的信号处理函数呢,它就是 sigaction(),推荐使用这个函数。5 k$ j2 \: E" h7 q/ S
7 n- `4 b+ E( l2 B- k% `8 d$ V& k. b
函数格式; r$ [; M. v& ]( G4 l2 t
( v) t) ?: k( ?5 z
8 ?9 G3 e0 `- B- ]* Q
|
|