exec 函式族,man手冊

2021-10-20 14:39:24 字數 1392 閱讀 5806

函式:

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函式族就提供了乙個在程序中啟動另乙個程式執行的方法。它可以根據指定的檔名或目錄名找到可執行檔案 這裡的可執行檔案既可以是二進位制檔...