Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1737369
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 系统运维

2012-03-27 17:31:04

信号是用来在一些条件(conditions)发生的情况下通知进程的一种技术。比如当一个进程被0除时,一个被为SIGFPE(floating-point-exception)的信号会被发送给这个进程。这个进程有三种处理该信号的方式:


1、忽略该信号。当信号表示硬件异常,比如被零除或者进程引用地址空间外部的内存时,这种做法并不推荐,因为会导致未定义的结果。


2、让默认行为发生。比如被零除的条件,默认行为是终止进程。


3、当信号发生时,提供一个可被调用的函数(称为捕获信号,catching the signal)。通过提供一个函数,我们可以知道信号何时发生,同时可以根据我们自己的意愿来处理该信号。


许多条件会产生信号。两个终端按键--中断(interrupt)键(通常是DELETE键或Control-C)和退出(quit)键(通常是 Control-backslash),常被用来中断正在运行的进程。另一种产生信号的方式是调用kill函数。我们可以在某个进程里调用kill函数来 给另一个进程发送信号。这样做是有限制的:我们必须是另一个进程的属主或者超级用户才能给它发送信号。
阅读(864) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~