【发布时间】:2009-07-30 07:30:31
【问题描述】:
例如:我想存储system("dir");的输出
【问题讨论】:
-
另一方面,如果“dir”不只是一个示例,请使用 FindFirstFile/FindNextFile...
例如:我想存储system("dir");的输出
【问题讨论】:
是的,看看从 CreateProcess 捕获标准输出:
请注意,dir 是 DOS 下的内置命令。因此,您必须执行以下系统命令:
cmd.exe /c dir c:\path\to\directory而不仅仅是打电话给dir。键入 cmd /? 以获取有关 /c 参数的更多信息。
【讨论】:
您可以使用重定向到文件(系统(“dir > file”)),读取该文件并将其删除,或者像在 Unix 中那样采用未命名管道方式 - 调用 CreatePipe() 来创建管道并将其附加为PROCESS_INFORMATION 结构中的输入/输出流,并将该结构传递给 CreateProcess()。
【讨论】:
POSIX 有一个 popen() 函数,我认为 Windows 有类似的东西叫做 _popen()。
【讨论】: