【问题标题】:What is the purpose of an "exec" call immediately after "fork"?在“fork”之后立即调用“exec”的目的是什么?
【发布时间】:2013-01-09 05:31:24
【问题描述】:

谁能解释在 fork() 之后立即调用 exec() 的用法?是否避免为孩子制作单独的副本?

【问题讨论】:

  • 如果没有fork/exec(提示:搜索短语),将如何启动另一个程序作为子进程?如果 exec 在 fork 之后立即被调用,那只是因为两者之间不需要做任何其他事情。 (有人可能会引用该维基百科文章的部分内容以获得“给我点”答案..)
  • 你可能想在这里阅读:evanjones.ca/fork-is-dangerous.html

标签: linux-kernel exec fork


【解决方案1】:

man exec 说:

exec() 系列函数用新的进程映像替换当前进程映像。

虽然man fork 这么说:

fork() 通过复制调用进程来创建一个新进程。

所以,fork-exec 链意味着父进程 forking 通过自我复制成为一个子进程,然后将当前(子)进程映像替换为新的。

请注意,不必在fork 之后调用exec。在很多情况下,一个过程映像可以满足父母和孩子的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-25
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2016-10-24
    • 1970-01-01
    相关资源
    最近更新 更多