1.exec家族一共有六個函式,分別是:
1、int execl(const char *path, const char *arg, ......);
2、int execle(const char *path, const char *arg, ...... , char * const envp);
3、int execv(const char *path, char *const argv);
4、nt execve(const char *filename, char *const argv, char *const envp);
5、int execvp(const char *file, char * const argv);
6、int execlp(const char *file, const char *arg, ......);
exec函式族的作用是根據指定的檔名找到可執行檔案,並用它來取代呼叫程序的內容,簡單的說就是:
在呼叫程序內部執行乙個可執行檔案。這裡的可執行檔案既可以是二進位制檔案,也可以是任何linux下可執行的指令碼檔案。
第乙個區別是:
前四個取路徑名做為引數,後兩個取檔名做為引數,如果檔名中不包含「/」則從path環境變數中搜尋可執行檔案,如果找到了乙個可執行檔案,但是該檔案不是連線編輯程式產生的可執行**檔案,則當做shell指令碼處理。
第二個區別:
前兩個和最後乙個函式中都包括「l 」這個字母,而另三個都包括「v 」," l "代表list即表,而" v "代表vector即向量,也是是前三個函式的引數都是以list的形式給出的,但最後要加乙個空指標,如果用常數0來表示空指標,則必須將它強行轉換成字元指標,否則有可能出錯。,而後三個都是以向量的形式給出,即陣列。
最後乙個區別:
與向新程式傳遞環境變數有關,如第二個和第四個以e結尾的函式,可以向函式傳遞乙個指向環境字串指標陣列的指標。即自個定義各個環境變數,而其它四個則使用程序中的環境變數。
linux exec函式家族
1.exec家族一共有六個函式,分別是 1 int execl const char path,const char arg,2 int execle const char path,const char arg,char const envp 3 int execv const char path...
linux exec函式族演示
就是呼叫系統的程式,自定義的指令碼不知為何有時不行。自定義二進位制檔案卻可以。1.execl list 列出引數列表 execl l是list 引數列表 include include include includeint main else if result 0 else return 0 執行...
printf家族函式
include int printf const char format,輸出到標準輸出 int fprintf file stream,const char format,輸出到檔案 int sprintf char str,const char format,輸出到字串str中 int snpr...