您的位置:首页 > 编程语言 > C语言/C++

C语言利用管道获取CMD命令结果

2017-08-10 09:38 190 查看
在实践中,我们有时候需要用C语言来调用cmd的命令,并得到执行的结果,这里给出一个简单的例子。

#include <stdio.h>

// 描述: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("ipconfig",result)){
printf(result);
}
system("pause");                          //暂停以查看结果
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言