亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++執(zhí)行Linux Bash命令的方法

 更新時間:2019年07月12日 09:48:37   作者:nudt_qxx  
今天小編就為大家分享一篇C++執(zhí)行Linux Bash命令的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

方法一:fopen()函數(shù)

#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指令
  // 系統(tǒng)調用
  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函數(shù)原型: FILE * popen( const char * command,const char * type);

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

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

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

或者,更簡單的:

方法二:system()函數(shù)

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

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

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

以上這篇C++執(zhí)行Linux Bash命令的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • VS2019實現(xiàn)C++的第一個MFC程序

    VS2019實現(xiàn)C++的第一個MFC程序

    本文主要介紹了VS2019實現(xiàn)C++的第一個MFC程序,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • OpenCV實現(xiàn)相機標定示例詳解

    OpenCV實現(xiàn)相機標定示例詳解

    相機標定是圖像處理的基礎,現(xiàn)在市面上買到的相機,都存在著或多或少的畸變。本文將介紹如何利用一系列棋盤照片進行攝像機標定的,感興趣的小伙伴可以關注一下
    2021-11-11
  • C++深入講解函數(shù)重載

    C++深入講解函數(shù)重載

    C++ 允許多個函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function Overloading),借助重載,一個函數(shù)名可以有多種用途
    2022-07-07
  • C語言簡易通訊錄的實現(xiàn)代碼

    C語言簡易通訊錄的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了C語言簡易通訊錄的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C語言實現(xiàn)掃雷OvO(完整代碼)

    C語言實現(xiàn)掃雷OvO(完整代碼)

    相信大家都玩過掃雷游戲,因為它太經(jīng)典了,今天我們用C語言來模擬實現(xiàn)掃雷游戲,結合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2022-04-04
  • C語言實現(xiàn)一個通訊錄

    C語言實現(xiàn)一個通訊錄

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)一個通訊錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C語言數(shù)據(jù)結構之平衡二叉樹(AVL樹)實現(xiàn)方法示例

    C語言數(shù)據(jù)結構之平衡二叉樹(AVL樹)實現(xiàn)方法示例

    這篇文章主要介紹了C語言數(shù)據(jù)結構之平衡二叉樹(AVL樹)實現(xiàn)方法,結合實例形式分析了C語言平衡二叉樹的相關定義與使用技巧,需要的朋友可以參考下
    2018-01-01
  • C語言數(shù)據(jù)結構中樹與森林專項詳解

    C語言數(shù)據(jù)結構中樹與森林專項詳解

    這篇文章主要介紹了C語言數(shù)據(jù)結構中樹與森林,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • 基于Windows API分解路徑問題的詳解

    基于Windows API分解路徑問題的詳解

    本篇文章是對Windows API分解路徑進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • VC++6.0實現(xiàn)直線掃描轉換的圖文教程

    VC++6.0實現(xiàn)直線掃描轉換的圖文教程

    這篇文章主要給大家介紹了關于VC++6.0實現(xiàn)直線掃描轉換的相關資料,文中通過圖文將實現(xiàn)的步驟一步步介紹的非常詳細,對大家學習或者使用VC++6.0具有一定的參考學習價值,需要的朋友可以參考下
    2023-01-01

最新評論