exec函數(shù)用法 linux中system和exec函數(shù)的區(qū)別?
linux中system和exec函數(shù)的區(qū)別?system是用shell來調(diào)用程序=fork exec waitpid,而exec是直接讓你的程序代替用來的程序運行。 system 是在單獨的進(jìn)程中
linux中system和exec函數(shù)的區(qū)別?
system是用shell來調(diào)用程序=fork exec waitpid,而exec是直接讓你的程序代替用來的程序運行。 system 是在單獨的進(jìn)程中執(zhí)行命令,完了還會回到你的程序中。而exec函數(shù)是直接在你的進(jìn)程中執(zhí)行新的程序,新的程序會把你的程序覆蓋,除非調(diào)用出錯,否則你再也回不到exec后面的代碼,就是說你的程序就變成了exec調(diào)用的那個程序了。 看一下,下面的例子. 例子1 --------------------------------- system("your_program") printf("You can see me! ") --------------------------------- 例子2 --------------------------------- exec("your_program") printf("You can"t see me! ") --------------------------------- 在例子1中,在你的程序執(zhí)行完畢以后,會執(zhí)行printf語句。 在例子2中,由于exec將程序your_program代替了本身,因此程序不再會執(zhí)行printf語句。 在Linux下,exec通常會和fork語句一起用。 看下面的這個例子 -------------------------------------------- pid_t pid = fork() if (pid