总结:主进程 fork 3 个子进程,向这些进程中的每一个发送信号,然后等待。反过来,当每个 child 收到信号时,它被重定向到 child() 函数,向主进程发送信号(并调用 father() 函数),然后等待。如果主进程收到 3 个信号,它会终止子进程并结束程序。
问题是主进程只收到一次信号。我怀疑其他 2 个信号在执行 father() 函数时丢失了,或者我可能只是遗漏了一些东西
有没有办法知道某些信号是否丢失?那我该如何避免这种情况呢?
最佳答案
信号不可靠,如果您需要确保接收到消息,则应避免使用。更可靠的方法是使用
- 管道
- 共享内存
- 套接字
- 文件
关于c - 如何在不丢失信号的情况下将信号从多个 child 发送到主进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913989/