linux系統程式設計之exec函式族

2021-09-24 19:49:06 字數 1249 閱讀 1178

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...