Linux下C的exec系統呼叫

2021-05-23 18:36:07 字數 1126 閱讀 3143

int execl(const char *path, const char *arg, const char *arg[1], ……)

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 argv[ ]);

int execve(const char *path, char *const argv[ ], char *const envp[ ]);

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

在使用以上6個函式之前,必須要定義全域性變數 extern char ** environ; 用此全域性變數儲存環境變數。

以上6個函式功能相同,但是引數使用方法各有不同,有的需要檔名或者路徑,有的需要arg指標或者將arg乙個乙個列舉出來。

函式成功返回0, 失敗返回-1.

6個函式中除了execle()和execve()是為新程式指定新環境之外,其他函式均是將程序的環境傳遞給新程式。

exec系統呼叫沒有建立新的程序,只是替換了程序中的上下文內容。

示例**execve()如下:

被呼叫檔案:

呼叫以上檔案的檔案:

如果想將緩衝區的buffer強制輸出的話,可以使用fflush(stdout)輸出到螢幕。

Linux系統下的 exec系列函式

1 exec函式說明 fork函式是用於建立乙個子程序,該子程序幾乎是父程序的副本,而有時我們希望子程序去執行另外的程式,exec函式族就提供了乙個在程序中啟動另乙個程式執行的方法。它可以根據指定的檔名或目錄名找到可執行檔案,並用它來取代原呼叫程序的資料段 段和堆疊段,在執行完之後,原呼叫程序的內容...

Linux下的exec函式

在程序間的程式替換 用fork建立子程序後執行的是和父程序相同的程式 但有可能執 行不同的 分 支 子程序往往要呼叫一種exec函式以執 行另 乙個程式。當程序呼叫一種exec函式時,該程序的使用者空間 和資料完全被新程式替換,從新程式的啟動例程開始執行。呼叫exec並後該程序的id並未改變。不建立...

linux下的exec命令

shell 中的 exec 兩種用法 1.exec 命令 命令代替shell程式,命令退出,shell 退出 比如 exec ls 2.exec 檔案重定向,可以將檔案的重定向就看為是shell程式的檔案重定向 比如 exec 5shell的內建命令exec將並不啟動新的shell,而是用要被執行命...