|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 mytomorrow 于 2019-9-24 13:28 编辑
' L2 ~: ?7 V! V2 Y( p$ X& F4 A
. Z2 V. u: g% o% ?) d* YLinux进程间通信(5)再来看看信号通信之signal()函数及其基础实验
- [/ y" x1 K5 w8 h! m% c# h6 h9 ^6 H
上一节介绍进程间通信方式之一信号通信中的信号产生和捕捉函数,这一节介绍信号处理函数signal()函数和信号集函数组,接上一节:Linux进程间通信(4)这节看看信号通信之信号发送捕捉kill()、raise()、alarm()、p...( y/ w$ {- ~/ S& }+ P+ R* b
7 }0 d6 q. U8 l
强烈建议做最后一个实验!4 {5 _' j5 @. `0 F$ ?" ]: P
! ~4 m2 @( L! Y* T, _4 u信号处理方法5 o6 H" u0 B7 z% B2 F# q
1 m, n( x6 S0 l+ c2 s 信号处理的方法主要有以下两种:. m% k$ E( [( A8 i1 l J" \# T
' w8 S9 ^' M# l& }' `0 L- X ① 使用 signal() 函数;
0 F0 a" i/ i0 s5 h" K
/ U7 B4 w4 U% X4 I% @2 b" |* C ② 使用信号集函数组。
+ P6 E$ N- W" \" O* [5 E* W! f1 s+ J$ o A' j; R* z
使用signal()函数. j v) [9 k1 ]- A
4 y# S; L" N; u
函数说明. V8 E( x* T+ P6 F8 Z7 P( D5 Y, y
& ~) X# Z; c; H
使用signal()函数处理时,只需指出要处理的信号和处理函数即可。它主要用于前32种非实时信号的处理,不支持信号传递信息。Linux还支持一个更健壮更新的信号处理函数呢,它就是 sigaction(),推荐使用这个函数。
- k9 B& ~ n* n+ N
; |6 ^& I' f C, T X# W+ u- T函数格式
: @ p$ ~) H3 A2 y' V5 h
% o; C" N1 B( ]- s( g
$ B# |% _: ?& O1 N- ` |
|