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

时间:2015-03-05 02:51:19

标签: unix haskell io

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

1 个答案:

答案 0 :(得分:8)

使用std_in类型的std_errCreateProcess字段:

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