exec函式族筆記

2021-07-02 03:34:31 字數 1110 閱讀 1816

#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 *arg, ..., char * const envp);

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

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

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

path 表示欲啟動程式的名稱包含路徑

arg 啟動程式帶的引數,一般第乙個引數為要執行命令名,不帶路徑且arg必須以null結束

返回值:0成功, -1失敗

帶p的exec1函式:file給出執行檔名(不需要完整路徑,它會在環境變數path當中查詢命令)

帶l的exec函式:arg第乙個引數為要執行命令名,不帶路徑且arg必須以null結束

帶e的exec函式:將環境變數傳遞給需要替換的程序

舉例:

1、
execl(

"/bin/ls

","ls

","-l

",null);

2、
char *argv = ;

ret = execvp("ls"

,argv);

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

功能:從path環境變數所指的目錄中查詢符合引數file 的檔名,找到後便執行該可執行檔案,然後將第二個引數argv傳給該欲執行的檔案。

返回值:

如果執行成功則函式不會返回,執行失敗則直接返回-1,失敗原因存於errno中。

複製去google翻譯

exec族函式學習筆記

o exec族函式 為什麼使用exec族函式?讓乙個程序要執行另乙個不同的程式。在fork建立乙個新程序後,呼叫exec族函式來讓新程序執行其他程式。exec族函式 execl,execlp,execle,execv,execvp,execvpe 呼叫失敗時返回 1,並從呼叫點繼續往下執行。exec...

exec族函式總結

1 execve為系統呼叫 其他的都是封裝的函式 l 引數列表 p 在環境變數path中尋找 v 引數陣列 e 替換環境變數列表 返回值 函式出錯 返回0 否則不反回 原來的使用者區已經被替換 只留下pcb所以沒有返回的地方 exec族函式只替換使用者區 但是對核心區的pcb也有一定的影響 詳見 a...

exec函式族小結

本人最近了解了關於exec函式族相關的知識,在此進行一下總結。fork函式是用於建立乙個子程序,該子程序幾乎是父程序的副本。而當我們希望子程序去執行另外的程式時,exec函式族就提供了乙個在程序中啟動另乙個程式執行的方法。它可以根據指定的檔名或目錄名找到可執行檔案 這裡的可執行檔案既可以是二進位制檔...