unix - haskell System.Process.createProcess 重定向 stdout 和 stderr

标签 unix haskell io

如何使用 System.Process 中的 createProcess 将 std_in 和 std_err 重定向到文件?

最佳答案

使用CreateProcess类型的std_instd_err字段:

foo cmd fin ferr =
    withFile fin  ReadMode  $ \hin  ->
    withFile ferr WriteMode $ \herr -> do
        (_, _, _, ph) <- createProcess (proc cmd [])
            { std_in  = UseHandle hin
            , std_err = UseHandle herr
            }
        waitForProcess ph

关于unix - haskell System.Process.createProcess 重定向 stdout 和 stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869164/

相关文章:

c - 当 SHARED lib 引用它们时,为什么最终二进制文件中包含 STATIC lib 中未使用的对象?

java - Java运行时执行shell脚本时会在哪里创建nohup.out文件?

unix - gdb:记录一些东西而不是破坏?

java - 为什么我会在文件关闭时关心 IOExceptions?

java - 读取和写入文本文件

linux - bash online - 如何退出 flow -ing 输出

haskell - 为什么引入严格性的函数称为 seq?

haskell - 如何在 Haskell 中枚举递归数据类型?

performance - fromJust 定义中的模式匹配

java - 如何在运行时/启动时禁用 System.setOut 和 setErr?