有了popen,使得linux開發的程式相當於可以輕鬆呼叫這台機器上的任何程式,因為popen執行命令後,可以返回執行輸出結果供程式使用
使用範例:
#include#include//strlen
#include#include#includeusing namespace std;
//execute shell command
//執行乙個shell命令,輸出結果逐行儲存在resvec中,並返回行數
int32_t myexec(const char *cmd, vector&resvec)
char tmp[1024]; //設定乙個合適的長度,以儲存每一行輸出
while (fgets(tmp, sizeof(tmp), pp) != null)
resvec.push_back(tmp);
}pclose(pp); //關閉管道
return resvec.size();
}int main()
}
編譯 g++ opentest.c -o a.out
C語言 popen函式的使用
一 利用system函式呼叫shell命令,只能獲取到shell命令的返回值,而不能獲取shell命令的輸出結果,那如果想獲取輸出結果怎麼辦呢?用popen函式可以實現。二 定義函式 file popen const char command,const char type 函式說明 popen 會...
Linux中的popen函式和system函式
說在前面 在實際程式設計中儘量減少使用system函式。int system const char command 說明 system 通過呼叫 bin sh c命令執行命令中指定的命令,並在命令完成後返回。在執行該命令期間,sigchld將被阻塞,並且sigint和sigquit將被忽略。返回值 ...
popen函式的實現
注 本文 本人有修改對 open max 的呼叫 popen函式的實現包括一下幾步 1 使用pipe 建立管道 2 使用fork 建立子程序 3 在子程序中呼叫exec族函式執行命令,通過管道將結果傳送至父程序 4 在主程序中等待子程序執行,子程序執行完成後將接收其結果,返回結果的檔案指標 類似與s...