2011-09-12 50 views

回答

8

exec用指定的程序替換您的過程。你的程序已經完成,並且不會繼續運行。

spawn啓動一個新進程(可能通過首先使用fork),並在程序繼續執行時運行指定的程序。

system啓動一個新進程(可能通過首先使用fork),並在程序等待時運行指定的程序。一旦孩子退出,你的程序繼續。

+3

'system'也殼下運行命令,如在'/ bin/sh的-c 「命令」'。如果該命令包含有趣的字符,則會有很大差異 – Nemo

+0

@Nemo:好點 –

1

exec將執行一個文件,而system將執行一個shell併爲其提供參數。

維基百科:

它(系統)在功能EXEC /產卵家族的不同在於,代替將參數傳遞給一個執行對象,一個單一的字符串被傳遞到系統的外殼,通常是POSIX shell,/ bin/sh -c。

http://en.wikipedia.org/wiki/System_%28C_standard_library%29

+0

它不會執行一個控制檯,只是一個shell。 – glglgl

+1

固定。謝謝。 –

相關問題