c++语言获取shell命令执行结果
时间: 2023-08-18 17:33:52 浏览: 145
在C++语言中,可以使用`popen()`函数获取shell命令执行结果。`popen()`函数可以打开一个进程,并且返回一个文件指针,该文件指针指向进程的标准输出流。通过读取该文件指针的内容,就可以获取到shell命令的输出结果。
下面是一个示例代码,演示如何使用`popen()`函数获取`ls -l`命令的输出结果:
```c++
#include <iostream>
#include <cstdio>
int main() {
FILE *fp;
char path[1035];
/* 打开进程并读取结果 */
fp = popen("ls -l", "r");
if (fp == NULL) {
std::cout << "Failed to run command" << std::endl;
return 1;
}
/* 读取命令输出结果 */
while (fgets(path, sizeof(path), fp) != NULL) {
std::cout << path;
}
/* 关闭进程 */
pclose(fp);
return 0;
}
```
在这个示例代码中,我们使用`popen()`函数打开了一个`ls -l`命令,并将返回的文件指针存储在`fp`变量中。然后,我们使用`fgets()`函数逐行读取命令的输出结果,并将其打印到控制台上。最后,我们使用`pclose()`函数关闭进程。
阅读全文