c - 从一个程序执行和捕获另一个程序

标签 c windows winapi console stdout

在 win32 中用 C 编程:

在另一个 win32 程序中执行 win32 控制台程序并让启动执行的程序捕获输出的最佳方法是什么?目前我让程序将输出重定向到一个文件,但我确定我必须能够打开某种管道?

最佳答案

使用 CreateProcess用于启动子进程的 Win32 API。

传递给它 STARTUPINFO hStdInputhStdOutputhStdError 句柄设置为您打开的文件句柄的结构(真实文件或内存映射文件都可以)。你不需要指定所有三个,你可以只重定向你真正需要的那些;最常见的情况是 hStdOutput

如果你想与子进程通信(通过hStdInput),你需要等待它通过调用WaitForInputIdle 来初始化。 .

关于c - 从一个程序执行和捕获另一个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/593897/

相关文章:

c - vxworks设置串口波特率失败

c++ - Qt4 - 从注册表访问 Windows Machine Guid

windows - 在 Windows 7 上使用 XAudio2 构建

windows - 批量改单行怎么办?

c++ - Microsoft 支持的用于检索线程地址的 API 是什么

c - 如何使用 ***prof 之类的东西来查找哪个函数的计算复杂度最高?

使用 Getchar 时清除缓冲区(必须有更好的方法!)

c - 用什么来检查c中的比较?

c++ - 使用 SetNamedSecurityInfo 设置 GRANT_ACCESS

c++ - GetWindowText() 返回空字符串和奇怪的错误