作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何将进程的标准输出和标准错误通过管道传输到同一个句柄?在 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/
我是一名优秀的程序员,十分优秀!