本質:用新的程式代替新的程序,可以指定要執行程式的檔案
exec函式如下:
intexecl
(const
char
*path,
const
char
*arg,..
.);path:指定路徑(相對/絕對路徑)
arg:相當於命令列引數,最後加上null。
intexeclp
(const
char
*file,
const
char
*arg,..
.);函式名以p結尾,使程式名在path中搜尋。
無p時,使用路徑搜尋。
intexecle
(const
char
*path,
const
char
*arg,..
.,char
*const envp)
;int
execv
(const
char
*path,
char
*const ar**)
;ar**:建立乙個字串陣列,向新程式中傳遞命令列引數,以null結尾。
intexecvp
(const
char
*file,
char
*const ar**)
;int
execve
(const
char
*path,
char
*const ar**,
char
*const envp)
;成功時:無返回,失敗時:返回-
1
1 #include
2 #include
3 #include45
intmain()
613else
if(pid>0)
1418
else
if(pid ==0)
1925
26return0;
27}
exec系列函式
1.exec家族一共有六個函式,分別是 1 int execl const char path,const char arg,2 int execle const char path,const char arg,char const envp 3 int execv const char path...
Linux 之exec系列函式
當程序呼叫exec系列函式中的任乙個時,該程序使用者空間資源 正文 資料 堆 棧 完全由新程式替代。因為呼叫exec並不建立新程式,如果無特殊指示 程序核心資訊基本不用修改 1 execl函式宣告如下 from usr include unistd.h int execl const char pa...
exec系列函式的實現
exec系列函式從linux的linux binfmt鍊錶中,通過依次呼叫每個結構的load binary函式來選擇合適的執行格式,一旦找到就執行load binary函式,否則嘗試下乙個linux binfmt的load binary 直到嘗試完所有的linux binfmt。load binar...