【发布时间】:2013-01-11 04:28:52
【问题描述】:
有什么方法可以在 Windows 中使用 C 执行命令,并在不使用 System 命令的情况下获取输出? win32 api中有没有函数?
【问题讨论】:
有什么方法可以在 Windows 中使用 C 执行命令,并在不使用 System 命令的情况下获取输出? win32 api中有没有函数?
【问题讨论】:
从answer 到这个问题What is the equivalent to Posix popen() in the Win32 API? 有一个指向这篇 MSDN 文章 Creating a Child Process with Redirected Input and Output 的链接,它或多或少地描述了如何使用 Win32 调用构建 popen 功能
本主题中的示例演示如何使用控制台进程中的 CreateProcess 函数创建子进程。它还演示了一种使用匿名管道重定向子进程的标准输入和输出句柄的技术。请注意,命名管道也可用于重定向进程 I/O。
【讨论】:
ShellExecute() 或 _spawn() 函数及其变体。 MSDN 是查看的地方。
【讨论】:
看看_popen 函数。它适用于控制台子系统可执行文件。
如果您的目标是 Windows 子系统,则有更复杂的基于 CreateProcess 的解决方案。