vforkは親プロセスと同じアドレス空間に子プロセスを作成し、execv()が子プロセスに対して呼び出されると、そのファイルを親の同じアドレス空間で実行します。したがって、その子はその子ですか?vfork()の後に親がどのようにリストアされるか
0
A
答えて
1
execv
が真vfork
を次の、それはfork
の作業の一部を行います。それはそれに新しいプログラムイメージとコピーの環境変数のような継承可能なものをロードするに新しいメモリ空間を割り当てます。一方、vfork
でも、親の状態のビットを側に保存するので、子が分離されると、execv
は親のスタックと命令ポインタを復元できます。
例えば、vfork
は、_do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, ...)
で共通のプロセスコピーコードを呼び出します。 copy_mm
はCLONE_VM
に反応し、dup_mm
を呼び出さずにメモリスペースを再利用するだけです。一方、_do_fork
はCLONE_VFORK
に反応し、子をvfork_done
とマークし、メモリスペースが使用されなくなるまで呼び出し元を中断します。これがexecve
経由の場合は、exec_mmap
とmm_release
となり、vfork_done
と表示され、親を起こします。
実際にはexecve
(これもまたcopy_strings
を呼び出します)は常に「新しいメモリ空間を割り当てて環境変数をコピーします」。しかし、通常のfork
の後には、これは、fork
によって作成された非共有空間を解放するのと同時に発生するため、観測できません。
関連する問題
- 1. リストアからディレクトリリストをどのように提供しますか?
- 2. 「バインド」ファイルシステムが親ファイルシステムの後にマウントされるようにするにはどうすればよいですか?
- 3. どのように親ウィンドウ
- 4. 親オブジェクトがdeallocされた後にivarのリリースが遅れる
- 5. vfork()の子はどのような特権を持っていますか?
- 6. 要素が親の最初か最後かをチェックするにはどうすればよいですか?
- 7. 例外の後にコードがどのように実行されますか?
- 8. リストア後のベクトルの長さが異なる
- 9. 最後のフォームが削除されないようにするにはどうすればよいですか?
- 10. 親カテゴリーのラジオボタンがクリックされないようにする
- 11. "親"保護されたメンバーにはどのようにアクセスできますか?
- 12. リストア後のデータのリフレッシュ
- 13. クリックが親に伝達されないようにする
- 14. ウィンドウが最小化状態からリストア/アクティブ化された後のWPFフォーカステキストボックス
- 15. 親ウィンドウの非クライアント領域に子ウィンドウがどのように表示されるのですか?
- 16. データがどのようにパーツファイルに分割されるのか
- 17. 親アクティビティの状態が保存されるようにバインドされているときに、フラグメントトランザクションをどのように処理しますか?
- 18. iCloudバックアップから開発中のiOSアプリケーションのリストアをテストするにはどうすればよいですか?
- 19. ビューを親の外にドラッグした後にビューをドラッグするにはどうすればよいですか?
- 20. テキストが親の幅に適応しないようにするにはどうすればよいですか?
- 21. ポリモーフィックオブジェクトが保存される前にその親をどのように取得しますか?
- 22. 子プロセス内のSIGINTが親プロセスに伝播し、親プロセスを強制終了させないようにするにはどうすればよいですか?
- 23. 戻りのvfork()システムコール
- 24. 親divに高さがあるかどうかをチェック
- 25. ReactJS - 子供が親の小道具にどのようにアクセスするのか?
- 26. Rails/Recaptcha - 送信ボタンがクリックされた後にのみRecaptchaが表示されるようにするにはどうすればよいですか?
- 27. Android - 親アクティビティが破壊されたかどうかを伝えよう
- 28. ルーティングされたコンポーネントの親/ホストを取得するにはどのよう
- 29. 子divの高さを親の高さに拡張するにはどうすればよいですか?
- 30. shared_ptrをある親クラスから別の親クラスにキャストするにはどうすればよいですか?
Hmm ,.スジは通ってるようだ。あなたはいくつかのドキュメントやリファレンスを提供できますか? – matrixisreal
@matrixisreal:私はこの件に関する実際の文書を見つけることができませんでしたが、最終的には、ソースを掘り下げる時間を見つけました。 –