Chinaunix首页 | 论坛 | 博客
  • 博客访问: 558827
  • 博文数量: 142
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1452
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 16:28
文章分类

全部博文(142)

文章存档

2016年(10)

2015年(60)

2014年(72)

我的朋友

分类: 项目管理

2014-08-29 10:57:09

信号产生到信号被处理这段时间间隔,称信号是未决的(pending).
信号阻塞是指阻止信号被处理。
当进程产生了一个阻塞信号,而且对该信号动作是系统默认或捕捉该信号,则该信号保持为未决状态,直到以下两种情况的一种发生:
1)进程对此信号解除了阻塞;2)对此信号的动作改为忽略。
可以通过调用sigpending函数来判定哪些信号是设置为阻塞并处于未决状态的。

如果信号在被解除之前,发送了很多次,系统是如果处理呢?
POSIX.1允许系统递送该信号一次或多次。如果递送该信号多次,则称对这些信号进行了排队。
但大多数UNIX不对信号排队,而是只递送一次这种信号。

每个进程都有一个信号屏蔽字,它规定了当前要阻塞递送到该进程的信号集。
进程可以调用sigprocmask来检测和更改其当前的信号屏蔽字。
int sigprocmask(int how,const sigset_t *new_set, sigset_t *old_set)
阅读(1847) | 评论(0) | 转发(0) |
0

上一篇:DHCPV6的两种模式

下一篇:linux abort

给主人留下些什么吧!~~