gpt4 book ai didi

windows - 如何将进程的 stdout 和 stderr 通过管道传输到同一个句柄?

转载 作者:可可西里 更新时间:2023-11-01 13:27:09 26 4
gpt4 key购买 nike

如何将进程的标准输出和标准错误通过管道传输到同一个句柄?在 unix 系统上,这非常简单,只需使用 createPipe 并将写入端作为 stdout 和 stderr 传递给 runProcess。在 Windows 上更难:

  • unix-compat 和 Win32 包都没有导出创建管道的方法。

  • openTempFile(可用于模拟管道)在创建的 Handle 上设置了错误的模式。

编辑:为了提供更多上下文:我想运行一个进程,并让它以跨平台的方式将其标准输出和标准错误写入相同的 Handle

最佳答案

您可以使用来自 System.Process 的东西.在 CreateProcess 定义中有

std_in       :: StdStream,               -- ^ How to determine stdin
std_out :: StdStream, -- ^ How to determine stdout
std_err :: StdStream, -- ^ How to determine stderr

StdStream有这个构造函数:

data StdStream = UseHandle Handle

之后,将您形成的对象传递给 createProcess 函数以运行您的 proc。

关于windows - 如何将进程的 stdout 和 stderr 通过管道传输到同一个句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com