popen函数调用一个cmd框出来的代码
时间: 2024-09-16 16:00:47 浏览: 41
在C++中,你可以使用`popen()`函数配合`pclose()`函数来创建一个子进程并执行一个命令,通常通过`std::FILE*`流来操作。下面是一个基本示例,展示了如何打开一个子进程执行cmd命令并读取输出:
```cpp
#include <cstdio>
#include <cstdlib>
#include <cstring>
int main() {
std::string command = "echo Hello, World!";
FILE *process = popen(command.c_str(), "r"); // "r" 参数表示只读模式
if (process != NULL) { // 检查是否成功打开子进程
char buffer[1024];
size_t bytes_read;
while ((bytes_read = fread(buffer, 1, sizeof(buffer), process)) > 0) {
buffer[bytes_read] = '\0'; // 添加空字符结束字符串
printf("子进程输出: %s\n", buffer);
}
pclose(process); // 关闭子进程
} else {
perror("Failed to open process");
}
return 0;
}
```
在这个例子中,`popen(command.c_str(), "r")`会执行指定的`command`(这里是打印"Hello, World!"),然后`fread()`用来逐块读取子进程的输出到缓冲区。
阅读全文