0

最近、UNIX の exec() システム コールについて知りました。exec() を実行するプロセスを考えてみましょう。「変換されたプロセス」は再び exec() を実行します。そして突然、現在実行中のものが失敗したため、前のプロシージャのコンテキストを復元する必要があります。

私の質問は、失敗が連鎖的に発生し続ける場合、「元の」コンテキストがまだ利用可能であるかということです。言い換えれば、UNIX がコンテキストを保存するためにどれだけのメモリを消費できるかということです。

4

1 に答える 1

1

exec() ファミリはシステム コールを置き換えています。元のプロセスを新しいプロセスに完全に置き換えるため、元に戻すことはできません。元のコンテキストを維持するには、system() 呼び出しを使用します (これは fork() と exec() のラッパーです)。

于 2013-09-27T04:01:43.890 に答える