我正在用 C 编写一个多进程程序。
我希望父进程可以等待所有子进程完成然后退出 它收到 SIGINT。
我有两个问题。
parent 如何记录它 fork 的子进程的每个 pid。 子进程可能会在录制功能运行之前完成 主要过程。
如果 parent 不知道它有多少个子进程。他怎么等 所有子进程完成。
提前致谢。
最佳答案
您在派生子进程时记录它们的 pid(如果需要)。
在 pid = 0 的循环中调用 waitpid
它将返回退出的进程的 pid 或返回 -1 并且如果 errno = ECHILD
你没有留下任何奴隶。
关于c - parent 如何等待所有子进程完成然后在收到 SIGINT 时退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545916/