一 點睛
execlp函式會從path環境變數所指得目錄中查詢符合引數file的檔名,找到後便執行該檔案,然後將第二個以後的引數當作該檔案的ar**[0]、ar**[1]......,最後乙個引數必須用空指標(null)結束。
execlp函式宣告如下:
int execlp(const char *filename, const char *arg, ...)
如果執行成功,則函式不會返回,執行失敗則直接返回-1,失敗原因存於errno中。
二 使用execlp執行不帶選項的命令程式pwd
1 **
2 編譯並執行#include int main(int argc, char* ar**)
3 說明[root@localhost test]# g++ test.cpp -o test
[root@localhost test]# ./test
/root/c++/ch05/5.8/test
execlp的第乙個函式直接用pwd這個命令程式即可,而不需要寫出其全路徑,因為環境變數path中已經包含路徑/usr/bin了。
對應第二個引數為什麼是空字串,這個其實不重要,傳任意字串都可以,但必須要有,不能為null,否則執行會報錯。這只是針對建立系統命令程式的情況,我們自己的程式無須這樣。
三 使用execlp執行我們自己編寫的程式
1 編寫我們自己寫的程式
4 執行結果#include using namespace std;
#include int main(int argc, char* ar**)
[root@localhost test]# g++ test.cpp -o test
[root@localhost test]# ./test
argc=2
hello
boys
關於execlp 函式及其引數問題
在 unix環境高階程式設計 一書中,講到exec函式及其使用,其中有乙個例子,簡單來說就是這樣 execlp ls ls al char 0 其輸出結果就跟我們在終端裡輸入ls命令得到的結果一樣。在說疑問之前,先看函式的定義 int execlp const char file,const cha...
C函式之memset 函式用法
c函式之memset 函式用法 1.功能 將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ascii值,塊的大小由第三個引數指定,這個函式通常為新申請的記憶體做初始化工作,其返回值為指向s的指標 2.需要的標頭檔案 or 3.函式原型 void memset void s,int c...
C函式之memcpy 函式用法
函式原型 void memcpy void dest,const void src,size t n 功能 由src指向位址為起始位址的連續n個位元組的資料複製到以destin指向位址為起始位址的空間內。標頭檔案 作用 將s中的字串複製到字元陣列d中。include include intmain ...