c++ - 如何读取/重定向 dos 命令的输出到 C/C++ 中的程序变量?

标签 c++ c command

我想从我的程序运行一个 dos 命令,例如“dir”命令。 我正在这样做,

system("dir");

有什么方法可以将该命令的输出直接读取到程序变量中吗?

我们总是可以将输出重定向到一个文件,然后读取该文件,方法是
system("dir > command.out");

然后读取 command.out 文件。但是我们如何才能直接执行而不是重定向到文件然后读取呢?

最佳答案

你不能将它重定向到一个变量,但你可以做一个类似于管道在 Unix 中用于链接命令的方式的技巧。调用CreateProcess() ,并在 STARTUPINFO::dwFlags 中向其传递一个具有相应设置句柄和 STARTF_USETDHANDLESSTARTUPINFO 实例。然后通过设置的句柄读取来自派生进程的数据。

关于c++ - 如何读取/重定向 dos 命令的输出到 C/C++ 中的程序变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404189/

相关文章:

C While 循环 - 检查函数

cmake - 使用多个命令进行CTest

Java拦截命令提示符回复

c++ - C、C++通过USB适配器写入并口(LINUX)

c++ - std 列表错误

c - 在 c - wwwmc 中实现 'cat'? (我的代码有什么问题)

c++ - 理解 C++ 中的命令

c++ - Boost 调试和发布库是否相同?

c++ - 容器对象作为 (void*) 传递时的共享指针行为

c - C 宏的特殊用途