3 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
exec()系列中的函數(shù)具有不同的行為:
l:參數(shù)作為字符串列表傳遞給main()
v:參數(shù)作為字符串?dāng)?shù)組傳遞給main()
p:搜索新運(yùn)行程序的路徑
e:環(huán)境可以由調(diào)用方指定
您可以將它們混合,因此具有:
int execl(const char * path,const char * arg,...);
int execlp(const char * file,const char * arg,...);
int execle(const char * path,const char * arg,...,char * const envp []);
int execv(const char * path,char * const argv []);
int execvp(const char * file,char * const argv []);
int execvpe(const char * file,char * const argv [],char * const envp []);
對(duì)于所有這些文件,初始參數(shù)是要執(zhí)行的文件的名稱。
有關(guān)更多信息,請(qǐng)閱讀exec(3)手冊(cè)頁:
man 3 exec # if you are running a UNIX system

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
該exec
系列函數(shù)使你的程序執(zhí)行不同的程序,取代舊的程序它運(yùn)行。即,如果您打電話
execl("/bin/ls", "ls", NULL);
然后使用ls
調(diào)用的的進(jìn)程ID,當(dāng)前工作目錄和用戶/組(訪問權(quán)限)執(zhí)行程序execl
。之后,原始程序不再運(yùn)行。
要啟動(dòng)新進(jìn)程,將使用fork
系統(tǒng)調(diào)用。要執(zhí)行程序而不替換原始程序,您需要fork
依次按exec
。
- 3 回答
- 0 關(guān)注
- 737 瀏覽
添加回答
舉報(bào)