我正在编写一个可扩展的shell我正在研究一个与从Unix内核捕获SIGCHLD信号有关的问题。
我正在尝试维护当前作业的列表(因此当用户在shell中键入“作业”时,我可以返回相应的作业)。当我需要从列表中删除作业时出现问题。当我收到SIGCHLD信号时,我想将它们从列表中删除,让我知道该过程已终止。
有两个问题: 1.当我收到SIGCHLD信号时,我如何知道哪个孩子发送了该信号? 2.如果收到多个SIGCHLD信号并且它们没有排队,我如何处理,所以我只会看到第一个SIGCHLD返回?
谢谢!