linux函式exec函式族:
這來函式是用來執行一些可執行檔案的,常用在fork出子程序後,在子程序中執行。也就是替換子程序的東西,子程序的東西全部被替換,但只是替換,不會產生乙個新的程序,程序的id號也不會改變。
#include extern char **environ;
int execl(const char *path, const char *arg, ...
/* (char *) null */);
int execlp(const char *file, const char *arg, ...
/* (char *) null */);
int execle(const char *path, const char *arg, ...
/*, (char *) null, 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**, char *const envp);
l代表的是list:命令列引數列表
p代表的是path:搜尋file時的使用的path變數
v代表的是vector:使用命令列引數陣列
e代表的是environment:使用環境變數陣列
常用的函式有兩個execl和execlp
引數會通過引數列表傳遞給執行的檔案,並且以null結尾代表引數結束,下邊通過測試**對函式傳遞引數方式進行解析
以下是需要execl函式執行的檔案**,將傳入的函式全部列印出來
#include #include int main(int argc, char*ar**)
return 0;
}
#include #include int main(void)
函式的執行結果為
ar**[0] = a
ar**[1] = b
ar**[2] = c
看見execl函式的第二個引數會當做test的第乙個引數傳入,以此類推。execl執行後函式只有在呼叫函式出錯的情況下才返回,一旦呼叫成功,函式則會跳轉到指定的函式中去執行,任何情況下都不會在返回。 Linux系統程式設計之exec族函式
目錄 一 說在前面 二 函式介紹 2.1 函式原型 2.2 函式功能 2.3 函式引數 2.3.1引數傳遞方式 2.3.2 區別與不同 2.4 函式關係 三 例項歷程 3.1 execl 示例 3.2 execlp 示例 3.3 execv 示例 3.4 execvp 示例 3.6 execve 示...
linux系統程式設計 exec函式族
例項 include include include intmain void else if pid 1 else return0 hello.c 輸出自己pid和環境變數 include include extern char environ intmain void include inclu...
Linux系統程式設計 exec程序替換
1 讓父子程序執行不相干的操作 也就是說,在乙個執行的程式a中,呼叫另外的應用程式b。2 換核不換殼 exec族函式,能夠替換程序位址空間中的 段.text段 對應的堆 棧中的資料都會改變 重新填充新的 execl系列是變參函式 int execl const char path,const cha...