system是用shell來呼叫程式=fork+exec+waitpid,而exec是直接讓你的程式代替用來的程式執行。 system 是在單獨的程序中執行命令,完了還會回到你的程式中。而exec函式是直接在你的程序中執行新的程式,新的程式會把你的程式覆蓋,除非調用出錯,否則你再也回不到exec後面的程式碼,就是說你的程式就變成了exec呼叫的那個程式了。 看一下,下面的例子. 例子1 --------------------------------- system("your_program"); printf("You can see me! "); --------------------------------- 例子2 --------------------------------- exec("your_program"); printf("You can"t see me! "); --------------------------------- 在例子1中,在你的程式執行完畢以後,會執行printf語句。 在例子2中,由於exec將程式your_program代替了本身,因此程式不再會執行printf語句。 在Linux下,exec通常會和fork語句一起用。 看下面的這個例子 -------------------------------------------- pid_t pid = fork(); if (pid
system是用shell來呼叫程式=fork+exec+waitpid,而exec是直接讓你的程式代替用來的程式執行。 system 是在單獨的程序中執行命令,完了還會回到你的程式中。而exec函式是直接在你的程序中執行新的程式,新的程式會把你的程式覆蓋,除非調用出錯,否則你再也回不到exec後面的程式碼,就是說你的程式就變成了exec呼叫的那個程式了。 看一下,下面的例子. 例子1 --------------------------------- system("your_program"); printf("You can see me! "); --------------------------------- 例子2 --------------------------------- exec("your_program"); printf("You can"t see me! "); --------------------------------- 在例子1中,在你的程式執行完畢以後,會執行printf語句。 在例子2中,由於exec將程式your_program代替了本身,因此程式不再會執行printf語句。 在Linux下,exec通常會和fork語句一起用。 看下面的這個例子 -------------------------------------------- pid_t pid = fork(); if (pid