如果子进程调用 exec,wait() 会做什么?

dup*_*r21 0 c process exec

如果子进程调用 exec,它将终止并使用相同的 pid 创建一个新进程。

wait() 函数会等待子进程终止还是孙进程终止?

Ste*_*mit 5

如果子进程调用 exec,它将终止并使用相同的 pid 创建一个新进程。

不,不完全是。

exec不创建新进程——它用新程序覆盖单个进程(旧进程)。所以没有新的孩子(没有“孙子”),也没有新的 pid。因此,如果父级调用wait,它不会返回,直到exec'ed 程序返回。(事实上​​,exec根本没有太多父母可以察觉到的外部影响。)