2013-09-26 45 views
0

我最近了解到unix中的exec()系統調用。考慮執行exec()的進程,並且「已轉換的進程」再次執行exec()等。突然間,當前正在執行的任務失敗,因此必須恢復前一個proc的上下文。exec系統調用中的級聯失敗

我的問題是,如果故障繼續以層疊的方式發生,那麼「原始」上下文仍然可用。換句話說,unix需要花費多少內存才能繼續並保存上下文。

回答

1

exec()系列是取代系統調用 - 它們完全取代了原來的新進程,因此沒有退路。爲了保持原始上下文使用system()調用(這是fork()和exec()的包裝)

+0

有人告訴我,如果替換的上下文失敗,那麼上一個上下文將被恢復。這不正確嗎? – ishan3243

+0

不「恢復」 - 它只是停留。您繼續執行由exec返回的負面rcode。 –