主要通過在乙個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 返回值 成功返回新分配的檔案描述...