c++通过管道pipe获取cmd输出的字符

  • Post author:
  • Post category:其他


#include <stdio.h>

#include<iostream>

#include<string>

using namespace std;

// 描述:execmd函数执行命令,并将结果存储到result字符串数组中

// 参数:cmd表示要执行的命令

// result是执行的结果存储的字符串数组

// 函数执行成功返回1,失败返回0

int execmd(char* cmd,char* result) {


char buffer[128]; //定义缓冲区

FILE* pipe = _popen(cmd, “r”); //打开管道,并执行命令

if (!pipe) return 0; //返回0表示运行失败

while(!feof(pipe)) {


if(fgets(buffer, 128, pipe)){ //将管道输出到result中

strcat(result,buffer);

}

}

_pclose(pipe); //关闭管道

return 1; //返回1表示运行成功

}

int main(){


char result[1024*4]=””; //定义存放结果的字符串数组

if(1==execmd(“rasdial”,result)){


printf(result);

cout<<result;

}

system(“pause”); //暂停以查看结果

}

转载于:https://www.cnblogs.com/deemonliang/p/4896353.html