signal的作用是什么?会不会导致阻塞?handler函数会在什么情况下调用?使用同一个handler去注册不同的信号,效果怎么样?

信号递送过程中,产生了另一个同类信号会怎么样?产生了另两个、三个、多个同类信号会怎么样?写代码验证一下你的想法。说明mask和pending如何变化。

使用sigaction注册2号信号的处理函数

1) 允许自动重启低速系统调用

2)在处理2号信号时阻塞3号信号,不会被3号信号打断;

  1. 在2号信号的信号处理函数中,使用sigpending函数判断一下有没有3号信号处于未决状态;

通过sigprocmask阻塞2号信号,睡眠5秒后,解除阻塞,2号信号得到执行;在睡眠后,解除阻塞之前,通过sigpending检测是否有信号挂起。

完成窗口聊天: 通信方式: - A进程和B进程负责通信,从标准输入读到的字符串通过管道发给对方 - A进程从标准输入读到的字符串发给B进程后,B打印到屏幕上。 - B进程从标准输入读到的字符串发给A进程,A打印到屏幕上。 退出方式: 任意一个进程在标准输入收到输入1,给所有进程(通信双方)发送10号信号,每个进程收到10号信号后,开始执行有序退出