展望2011
《unix环境高级编程》通读学习笔记(二)(第10章)
上一篇 /
下一篇 2007-07-25 23:06:25
/ 个人分类:unix环境高级编程的学习记录
51Testing软件测试网so,r D|+x t-~
h?ua_vB(z:l051Testing软件测试网
B8ZW}N#o9I第10章 信号51Testing软件测试网m3@"r%Fz'^#y4S
'm%aUQ`wUnFW0"GX1b7oIiF010.1 引言
%z]%u^"t'B0信号是软件中断。它提供了一种处理异步事件的方法。
,}+I\*Yd&{G#^}051Testing软件测试网b2h] V4?h10.2 信号的概念51Testing软件测试网]X
eio5ec(cI
字符SIG开头 头文件<signal.h>中
/}5A!?CW3]P-P!G0产生一个信号的条件:51Testing软件测试网]^!\x:mZ.M4v4bv
1.用户按某些终端键51Testing软件测试网]!^(IV;c5I
2.硬件异常产生信号
%Z;oC8OxJ$B{~:zo03.进程用kill(2)函数可将信号发送给令一个进程或进程组
v
@j"o;m*`2e]-K%V04.用户可用kill(1)命令将信号发送给其他进程
(e|"pE#Z;I05.当检测到某种软件条件已经发生,并将其通知有关进程时也产生信号
T4M-wx_3@1H7O2x051Testing软件测试网AmBQI8l w2g%m2\信号出现时的三种操作方式:51Testing软件测试网
De8|
oUL e,dU"v
1.忽略此信号51Testing软件测试网'O,m[{/X2u"Y/\ d
2.捕捉信号51Testing软件测试网gG&],e J3z$O;l@y
3.执行系统默认动作51Testing软件测试网N#q$uO5x1MT H.}@
([~)B@Pq E0表10-1 UNIX信号51Testing软件测试网d
k[*G/Y%vo*}
tW&s3l/B010.3 signal函数51Testing软件测试网&|H'?GxyZv
signal函数为信号处理程序(signal handler)或信号捕捉函数(signal-catching function)51Testing软件测试网"~8{&@O$m,C l;LsOo
————————————————————————————————————————————————————
kKD&A7NaBw0#include <signal.h>51Testing软件测试网y B3]B
Opz4^%x&g
void (*signal(int signo,void (*func)(int)))(int);51Testing软件测试网%Y0e@e\d#Y6\*C
返回:成功则为以前的信号处理配置,若出错则为SIG_ERR51Testing软件测试网 S ?%A9lQ!P
————————————————————————————————————————————————————51Testing软件测试网9eIa5IQ5l{
-}]gu/D9~/a"IL#To010.4 不可靠的信号51Testing软件测试网c3^#DUeA XP6r*c1p
10.5 中断的系统调用
)\XS8~qC0系统调用分为两类:低速系统调用和其他系统调用。低速系统调用是可能会使进程永远阻塞的一类系统调用。
QM8Q]5]y~051Testing软件测试网$nj3i_%aEt0_L表10-2 几种信号实现所提供的功能51Testing软件测试网%\S8u W)qB
Bym B Y+l;DD010.6 可再入函数