如何使用POSIX在C ++中执行命令并获取命令输出?
您可以使用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.outhello.cpp
hello.py
hello.o
hydeout
my_file.txt
watch.py
以上是 如何使用POSIX在C ++中执行命令并获取命令输出? 的全部内容, 来源链接: utcz.com/z/341133.html