登录 注册
当前位置:主页 > 资源下载 > 11 > 鸿鹄论坛上的华为认证h35-211-hcnp-access network题库讨论了sigpending函数

鸿鹄论坛上的华为认证h35-211-hcnp-access network题库讨论了sigpending函数

  • 更新:2024-11-05 11:26:14
  • 大小:18.16MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Unix - 操作系统
  • 格式:PDF

资源介绍

10.13 sigpending函数 s i g p e n d i n g返回对于调用进程被阻塞不能递送和当前未决的信号集。该信号集通过 s e t参数 返回。 #include int sigpending(sigset_t *s e t) ; 返回:若成功则为0,若出错则为-1 实例 程序1 0 - 11使用了很多前面说明过的信号功能。进程阻塞了 S I G Q U I T信号,保存了当前信 号屏蔽字(以便以后恢复),然后睡眠5秒钟。在此期间所产生的退出信号都被阻塞,不递送至 该进程,直到该信号不再被阻塞。在 5秒睡眠结束后,检查是否有信号未决,然后将 S I G Q U I T 设置为不再阻塞。 注意,在设置S I G Q U I T为阻塞时,我们保存了老的屏蔽字。为了解除对该信号的阻塞,用 老的屏蔽字重新设置了进程信号屏蔽字( S I G _ S E T M A S K)。另一种方法是用S I G _ U N B L O C K 使阻塞的信号不再阻塞。但是,应当了解如果编写一个可能由其他人使用的函数,而且需要在 函数中阻塞一个信号,则不能用S I G _ U N B L O C K解除对此信号的阻塞,这是因为此函数的调用 者在调用本函数之前可能也阻塞了此信号。在这种情况下必须使用 S I G _ S E T M A S K将信号屏蔽 字恢复为原先值。1 0 . 1 8节的s y s t e m函数部分有这样的一个例子。 在睡眠期间如果产生了退出信号,那么此时该信号是未决的,但是不再受阻塞,所以在 s i g p r o c m a s k返回之前,它被递送到本进程。从程序的输出中可以看到这一点: S I G Q U I T处理 程序(s i g _ q u i t)中的p r i n t f语句先执行,然后再执行s i g p r o c m a s k之后的p r i n t f语句。 程序1 0 - 11 信号设置和s i g p r o c m a s k实例 2 2 2 U N I X环境高级编程 下载