fork() と vfork() の違いは何ですか? 質問する

fork() と vfork() の違いは何ですか? 質問する

違いは何ですかfork()そしてvfork()?vfork()のように返されますfork()

ベストアンサー1

の目的は、子プロセスでvforkのみ を実行する場合に、プロセス イメージ全体をコピーするオーバーヘッドを排除することですexec*。 は子プロセスのイメージ全体を置き換えるためexec*、親プロセスのイメージをコピーしても意味がありません。

if ((pid = vfork()) == 0) {
  execl(..., NULL); /* after a successful execl the parent should be resumed */
  _exit(127); /* terminate the child in case execl fails */
}

その他の用途では、vfork危険であり予測不可能です。

しかし、Linux を含む現在のカーネルのほとんどでは、 の実装vfork方法が原因で の主な利点が失われていますfork。 の実行時にイメージ全体をコピーするのではなくfork、コピーオンライト技術が使用されます。

おすすめ記事