展望2011
《unix环境高级编程》通读学习笔记(二)(第10章)
上一篇 /
下一篇 2007-07-25 23:06:25
/ 个人分类:unix环境高级编程的学习记录
51Testing软件测试网[J3s$Mg|%kg 51Testing软件测试网p8bd!}VJ+K5e d
d~R9S:mqb0第10章 信号51Testing软件测试网 t#fz!kb;_
w0v]3eR.~O+X0}051Testing软件测试网0TRk;iC6M10.1 引言
f(e ^Py
D4YF,z0信号是软件中断。它提供了一种处理异步事件的方法。
/z*|*k1n~Ur!Z^B*H1^051Testing软件测试网4OJ:D&QsL'X10.2 信号的概念51Testing软件测试网2nsY"T;kG
字符SIG开头 头文件<signal.h>中51Testing软件测试网rzTO O,h{4[6B
产生一个信号的条件:51Testing软件测试网)yX8U jnp!a}%WAY
1.用户按某些终端键
.{8h$~9Xkh02.硬件异常产生信号51Testing软件测试网/j$p&]
s+o8\@&`9r)_
3.进程用kill(2)函数可将信号发送给令一个进程或进程组
5wd'?BK04.用户可用kill(1)命令将信号发送给其他进程
(j0KvB,d7x6q-b05.当检测到某种软件条件已经发生,并将其通知有关进程时也产生信号
Qe4a&ISn_Ly051Testing软件测试网6{-m
g@"bO \信号出现时的三种操作方式:
O8r)R(ci8w)V{m:]01.忽略此信号51Testing软件测试网t0o9t@,F
2.捕捉信号
$R0T0hj6Y03.执行系统默认动作51Testing软件测试网 v*h)gT6h'{
b!W4F^L.j3{0表10-1 UNIX信号
a&Rj|
YW&a051Testing软件测试网8D0f;c#USwi10.3 signal函数
5Y,g
l(i x8d4wj,DA}
}0signal函数为信号处理程序(signal handler)或信号捕捉函数(signal-catching function)
+?&k,[vJ(OUQ `0————————————————————————————————————————————————————51Testing软件测试网9j:d7v#^xt5M
#include <signal.h>51Testing软件测试网bsH(Xy2rb2Tr
void (*signal(int signo,void (*func)(int)))(int);
$PEj4E8c1mF0 返回:成功则为以前的信号处理配置,若出错则为SIG_ERR
1E@%cX|0f8S:g0————————————————————————————————————————————————————
S$^$Ih^ \4V0^I:I'Pi010.4 不可靠的信号
L$Vw*Q s-CUL@9`010.5 中断的系统调用51Testing软件测试网6G0W&G(}E
系统调用分为两类:低速系统调用和其他系统调用。低速系统调用是可能会使进程永远阻塞的一类系统调用。51Testing软件测试网v7Or4@)X4s9ql0m