【问题标题】:Execute and Capture one program from another从另一个程序执行和捕获一个程序
【发布时间】:2010-10-10 06:48:03
【问题描述】:

在 Win32 中用 C 编程:

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

【问题讨论】:

    标签: c windows winapi console stdout


    【解决方案1】:

    使用CreateProcess Win32 API 启动子进程。

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

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

    【讨论】:

    • 谢谢,将 stdoutput 定向到内存映射文件正是我所追求的。
    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2020-09-27
    • 2013-05-05
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多