fork(),exec和waitpid()

use*_*340 5 c unix fork process wait

我读了前面的问题fork和exec之间的差异,但它让我有些疑惑.

在使用fork()并且你对孩子调用exec时,创建的新进程exec仍然是孩子吗?

杀死父进程是否也杀死了孩子?

顶部答案中显示的绘图/示例中,他调用wait/,waitpid因为如果父进程首先终止,子进程终止,然后您获得该ls命令的部分输出或没有输出,这是正确的吗?

pb2*_*b2q 2

杀死父进程并不会杀死子进程。当子进程调用exec函数时,它仍然是子进程。

在链接问题的示例中,流程图大致描述了 shell 用于调用命令的过程。除非该命令是后台命令,否则 shell(父进程)将等到子进程终止后再继续读取命令。不然就没有必要等孩子了。

另请参阅这个问题