是否可以在Windows中存储系统调用的输出?

时间:2009-07-30 07:30:31

标签: c++ c windows

E.G。:我想存储system("dir");

的输出

3 个答案:

答案 0 :(得分:3)

是的,请看一下从CreateProcess中捕获stdout:

请注意,dir是DOS下的内置命令。所以你必须做类似以下系统命令的事情:

  • cmd.exe /c dir c:\path\to\directory

而不是仅仅致电dir。输入cmd /?以获取有关/c参数的更多信息。

答案 1 :(得分:2)

您可以使用重定向到文件(系统(“dir>文件”)),读取该文件并删除它,或者像在Unix中那样使用未命名的管道 - 调用CreatePipe()来创建管道并附加它作为PROCESS_INFORMATION结构中的输入/输出流,并将该结构传递给CreateProcess()。

答案 2 :(得分:0)

POSIX有一个popen()函数,我认为Windows有类似的东西叫_popen()。