Ubuntu C++ 获取命令行输出 - popen() 函数示例
在 Ubuntu 系统的 C++ 程序中,可以使用 "popen()" 函数获取命令行输出。以下是一个示例代码,展示如何使用 popen() 函数执行 "ls" 命令并获取其输出:
#include <iostream>
#include <stdio.h>
int main() {
FILE* fp = popen("ls", "r");
if (fp == NULL) {
std::cout << "Failed to run command" << std::endl;
return 1;
}
char buffer[128];
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
std::cout << buffer;
}
pclose(fp);
return 0;
}
在这个示例中,我们首先使用 popen() 函数执行 "ls" 命令并打开一个文件指针,然后使用 fgets() 函数逐行读取命令行输出并打印到屏幕上。最后,使用 pclose() 函数关闭文件指针。
需要注意的是,popen() 函数在执行命令时会创建一个子进程,因此需要在使用完输出后调用 pclose() 函数来关闭子进程,以释放系统资源。
原文地址: https://www.cveoy.top/t/topic/prps 著作权归作者所有。请勿转载和采集!