在C++中,你可以使用popen()
和pclose()
函数来重定向exec()
函数的输出
#include#include #include #include int main() { // 打开一个文件用于存储输出结果 FILE *fp = popen("your_command_here", "r"); if (fp == nullptr) { std::cerr << "Failed to run command" << std::endl; return 1; } // 从文件指针中读取输出结果 char buffer[128]; while (fgets(buffer, sizeof(buffer), fp) != nullptr) { std::cout << buffer; } // 关闭文件指针并等待命令执行完成 pclose(fp); int status = WEXITSTATUS(waitpid(0, nullptr, 0)); if (status != 0) { std::cerr << "Command exited with status " << status << std::endl; } return 0; }
在这个示例中,你需要将"your_command_here"
替换为你想要执行的命令。popen()
函数会创建一个管道,将命令的输出重定向到文件指针fp
。然后你可以使用fgets()
函数从文件指针中读取输出结果,并将其打印到标准输出。最后,使用pclose()
函数关闭文件指针,并使用waitpid()
函数等待命令执行完成。