2010-08-03 68 views
0

我找地方使用EXEC將是唯一availble的選項,一個真實的世界之情況(該問題無法在不使用EXEC解決)Exec的現實世界的例子

我知道什麼是高管,以及它如何不同來自fork,但仍對現實世界中的問題感興趣,該問題強制執行exec命令。

+3

老兄,什麼語言,什麼操作系統等? 'exec'是指英國石油公司的首席執行官嗎?如果你想得到有用的答案,請提出具體問 – 2010-08-03 14:55:44

+0

從當前進程加載另一個Unix二進制文件不是*真實世界*不夠?你認爲Unix shell是一個壞主意嗎?你的問題的背景是什麼? – 2010-08-03 14:57:12

+0

...這是關於shell命令調用exec還是exec系統調用系列('man 3 exec')? – 2010-08-03 14:59:16

回答

6

shell如何啓動另一個進程,沒有使用exec?

fork()(或者,現在在Linux上更好的clone())只是說要複製一個進程。那麼你有兩個相同的過程副本。

execve()(和-le,-lp,-vp,-v friends)只是說要用一個新進程完全替換當前進程。 (保留fd,但不多)

因此,要啓動另一個程序,首先必須在生成的進程之一(通常是子進程)中執行fork(),然後執行exec()

+0

沒錯,兩個系統調用之間有某種協同作用。他們通常一起使用。 – Ricardo 2010-08-03 15:51:05

相關問題