exec族函式學習筆記

2021-10-09 01:09:52 字數 1052 閱讀 8439

o ## exec族函式

為什麼使用exec族函式?

讓乙個程序要執行另乙個不同的程式。在fork建立乙個新程序後,呼叫exec族函式來讓新程序執行其他程式。

exec族函式

execl, execlp, execle, execv, execvp, execvpe ,呼叫失敗時返回-1,並從呼叫點繼續往下執行。

exec族函式原型

#include extern char **environ;

int execl(const char *path, const char *arg, ...);

int execv(const char *path, char *const ar**);

int execlp(const char *file, const char *arg, ...);

int execvp(const char *file, char *const ar**);

int execle(const char *path, const char *arg,..., char * const envp);

int execvpe(const char *file, char *const ar**,char *const envp);

path:可執行檔案的路徑名字,arg:可執行程式所帶的引數。file:可執行檔案路徑 名,或者path環境變數。

測試**:呼叫execl讓子程序執行date獲取時間

#include #include #include #include int main()}}

if(pid > 0)

printf("execl failed\n");

}return 0;

}

執行結果:

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