我必须通过终端插入一个奇数。在此之后,它会生成两个进程,A和B.
然后它向B发送SIGUSR2
信号,并且他的处理程序打印argv[1]
的倒数。然后,B睡眠argv[1]
秒并在终止前向{A}}发送信号。进程A的SIGUSR1
处理程序打印一些内容然后终止。
问题是进程A的SIGUSR1
处理程序不起作用,因为进程B的SIGUSR1
处理程序无法发送信号。事实上,SIGUSR2
表示没有这样的过程(过程A)。在进程A中设置信号处理程序后,它位于kill(A,SIGUSR1)
中。
谁能帮我解决?谢谢。
pause()
答案 0 :(得分:0)
pid1 已被杀死。 pid2 是杀手。
当 pid2 发出kill(0, SIGUSR2),
时,会发送SIGUSR2 to the entire process group,包括 pid1 。这会杀死 pid1 ,它没有准备好接收SIGUSR2。