我想从我的程序运行一个 dos 命令,例如“dir”命令。 我正在这样做,
system("dir");
有什么方法可以将该命令的输出直接读取到程序变量中吗?
我们总是可以将输出重定向到一个文件,然后读取该文件,方法是
system("dir > command.out");
然后读取 command.out 文件。但是我们如何才能直接执行而不是重定向到文件然后读取呢?
最佳答案
你不能将它重定向到一个变量,但你可以做一个类似于管道在 Unix 中用于链接命令的方式的技巧。调用CreateProcess()
,并在 STARTUPINFO::dwFlags
中向其传递一个具有相应设置句柄和 STARTF_USETDHANDLES
的 STARTUPINFO
实例。然后通过设置的句柄读取来自派生进程的数据。
关于c++ - 如何读取/重定向 dos 命令的输出到 C/C++ 中的程序变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404189/