【发布时间】:2015-02-14 04:42:41
【问题描述】:
假设我有进程 foo 和可执行 bar。 foo 调用 fork() 现在我有两个,分别称为 foo_parent 和 foo_child。
- foo_parent 调用 wait()
- foo_child 调用 execvp([stuff to run bar]);
我不太明白 foo_child/bar 会发生什么。 foo_child 是否用 bar 覆盖在内存中?是否启动了一个新的 bar 进程并给出了 foo_child 的 pid? bar 是 foo_child 的子节点,而 foo_child 只是将返回值传递给 foo_parent 吗?
我知道当 foo_parent 在等待后获得退出状态时,这是 bar 的 exit() 调用的结果,但我并没有很好地了解“幕后”发生的事情。
【问题讨论】: