bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

C++中怎么執行LinuxBash命令-創新互聯

這期內容當中小編將會給大家帶來有關C++中怎么執行LinuxBash命令,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

目前創新互聯建站已為成百上千家的企業提供了網站建設、域名、網絡空間、網站托管、企業網站設計、尚志網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。

方法一:fopen()函數

#include<cstdlib>#include<string>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N = 300;void Test(void){  char line[N];  FILE *fp;  string cmd = "ps -ef| grep java | awk '{print $2}'";  ////引號內是你的linux指令  // 系統調用  const char *sysCommand = cmd.data();  if ((fp = popen(sysCommand, "r")) == NULL) {    cout << "error" << endl;    return;  }  while (fgets(line, sizeof(line)-1, fp) != NULL){    cout << line ;  }  pclose(fp);}int main(){  Test();  return 0;}

注意:

popen函數原型: FILE * popen( const char * command,const char * type);

popen()會調用fork()產生子進程,然后從子進程中調用ps -ef| grep java | awk ‘{print $2}'來執行參數command的指令。參數type可使用“r”代表讀取,“w”代表寫入。popen()會建立管道連到子進程的標準輸出設備或標準輸入設備,然后返回一個文件指針。

隨后進程便可利用此文件指針來讀取子進程的輸出設備或是寫入到子進程的標準輸入設備中。此外,所有使用文件指針(FILE*)操作的函數也都可以使用,除了fclose()以外。

在編寫具SUID/SGID權限的程序時請盡量避免使用popen(),popen()會繼承環境變量,通過環境變量可能會造成系統安全的問題。

或者,更簡單的:

方法二:system()函數

#include <cstdlib>  int main()  {      system("ps -ef| grep java");    //括號內是你的linux指令    return 0;  }

注意:system()會調用fork()產生子進程,由子進程來調用”ps -ef| grep java ” 這個string來執行參數string字符串所代表的命令,此命令執行完后隨即返回原調用的進程。所以相比于直接執行 ps -ef| grep java , 用這個system()調用會多一個進程id。

在編寫具有SUID/SGID權限的程序時請勿使用system(),system()會繼承環境變量,通過環境變量可能會造成系統安全的問題。

上述就是小編為大家分享的C++中怎么執行LinuxBash命令了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

文章名稱:C++中怎么執行LinuxBash命令-創新互聯
文章來源:http://vcdvsql.cn/article34/cscipe.html

成都網站建設公司_創新互聯,為您提供自適應網站網站設計公司全網營銷推廣網站設計網站營銷ChatGPT

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設