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