函式:
execl, execlp, execle, execv, execvp, execvpe -執行乙個檔案
概要
外部變數 char * *environ;描述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 ar**);
int execvp(const char *file, char *const ar**);
int execvpe(const char *file, char *const ar**, const char * envp );
exec()函式只在發生錯誤時返回。返回值是-1,errno被設定為表示錯誤。
錯誤
所有這些函式都可能失敗,並為為execve(2)指定的任何錯誤設定errno。
版本
execvpe()函式最早出現在glibc 2.11中。
符合
posix . 1的授權posix . 1的授權- 2001 - 2008。
execvpe()函式是gnu的副檔名。
筆記
在其他一些系統中,預設路徑(當環境中不包含變數路徑時使用)有當前的工作路徑tory列在/bin和/usr/bin之後,作為反木馬的措施。linux在這裡使用傳統的「當前目錄優先」預設路徑。
execlp()和execvp()在執行檔案時發生錯誤的行為是歷史慣例,但不是傳統行為在posix標準中沒有指定。bsd(可能還有其他系統)會自動休眠如果遇到etextbsy,請重試。linux將其視為硬錯誤並立即返回。傳統上,execlp()和execvp()函式忽略了所有錯誤,除了上面描述的錯誤和enomem和e2big, upon
他們回來了。如果發生了上述錯誤以外的任何錯誤,它們將返回。
另請參閱
sh(1), execve(2), fork(2), ptrace(2), fexecve(3), environ(7)
版本記錄
本頁面是linux man-pages專案3.35版的一部分。專案的描述,以及有關報告的資訊
bug,可以在找到。
exec函式族筆記
include extern char environ int execl const char path,const char arg,int execv const char path,char const argv int execle const char path,const char a...
exec族函式總結
1 execve為系統呼叫 其他的都是封裝的函式 l 引數列表 p 在環境變數path中尋找 v 引數陣列 e 替換環境變數列表 返回值 函式出錯 返回0 否則不反回 原來的使用者區已經被替換 只留下pcb所以沒有返回的地方 exec族函式只替換使用者區 但是對核心區的pcb也有一定的影響 詳見 a...
exec函式族小結
本人最近了解了關於exec函式族相關的知識,在此進行一下總結。fork函式是用於建立乙個子程序,該子程序幾乎是父程序的副本。而當我們希望子程序去執行另外的程式時,exec函式族就提供了乙個在程序中啟動另乙個程式執行的方法。它可以根據指定的檔名或目錄名找到可執行檔案 這裡的可執行檔案既可以是二進位制檔...