Linux下系統呼叫之exec函式族探索

2021-12-30 01:25:57 字數 966 閱讀 8653

主要通過在乙個c程式**呼叫另外乙個c**生成的執行檔案來說明。

說是exec系統呼叫,實際上在linux中,並不存在乙個exec()的函式形式,exec指的是一組函式,一共有6個,分別是:

#include

extern char **environ;

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

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 ar**);

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

int execve(const char *path, char *const ar**, char *const envp);

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

l表示以引數列表的形式呼叫

v表示以引數陣列的方式呼叫

e表示可傳遞環境變數

p表示path中搜尋執行的檔案,如果給出的不是絕對路徑就會去path搜尋相應名字的檔案,如path沒有設定,則會預設在/bin,/usr/bin下搜尋。

具體示例:

#include

void main()

else

}執行結果:

呼叫上面生成2進製檔案:

#include

#include

#include

#include

//char command[256];

void main()

else

}執行結果:

Linux下C的exec系統呼叫

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

Linux系統呼叫之open , close

open函式可以開啟或建立乙個檔案。include include include intopen constchar pathname,intflags intopen constchar pathname,intflags,mode t mode 返回值 成功返回新分配的檔案描述符,出錯返回 1...

Linux系統呼叫之open, close

一 open函式可以開啟或建立乙個檔案。include include include int open const char pathname,int flags int open const char pathname,int flags,mode t mode 返回值 成功返回新分配的檔案描述...