C 之execlp函式用法

2021-09-14 04:45:35 字數 1091 閱讀 5928

一 點睛

execlp函式會從path環境變數所指得目錄中查詢符合引數file的檔名,找到後便執行該檔案,然後將第二個以後的引數當作該檔案的ar**[0]、ar**[1]......,最後乙個引數必須用空指標(null)結束。

execlp函式宣告如下:

int execlp(const char *filename, const char *arg, ...)
如果執行成功,則函式不會返回,執行失敗則直接返回-1,失敗原因存於errno中。

二 使用execlp執行不帶選項的命令程式pwd

1 **

#include int main(int argc, char* ar**)

2 編譯並執行

[root@localhost test]# g++ test.cpp -o test

[root@localhost test]# ./test

/root/c++/ch05/5.8/test

3 說明

execlp的第乙個函式直接用pwd這個命令程式即可,而不需要寫出其全路徑,因為環境變數path中已經包含路徑/usr/bin了。

對應第二個引數為什麼是空字串,這個其實不重要,傳任意字串都可以,但必須要有,不能為null,否則執行會報錯。這只是針對建立系統命令程式的情況,我們自己的程式無須這樣。

三 使用execlp執行我們自己編寫的程式

1 編寫我們自己寫的程式

#include using namespace std;

#include int main(int argc, char* ar**)

4 執行結果

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