您可以使用popen和pclose函数与进程进行管道传输。该popen()
函数通过创建管道,派生和调用外壳程序来打开进程。我们可以使用缓冲区读取stdout的内容,并将其附加到结果字符串中,并在进程退出时返回此字符串。
#include <iostream> #include <stdexcept> #include <stdio.h> #include <string> using namespace std; string exec(string command) { char buffer[128]; string result = ""; //打开管道文件 FILE* pipe = popen(command.c_str(), "r"); if (!pipe) { return "popen失败了!"; } //读到过程结束: while (!feof(pipe)) { //使用缓冲区读取并添加到结果 if (fgets(buffer, 128, pipe) != NULL) result += buffer; } pclose(pipe); return result; } int main() { string ls = exec("ls"); cout << ls; }
输出结果
这将给出输出-
a.out hello.cpp hello.py hello.o hydeout my_file.txt watch.py