Cla*_*diu 1 executable haskell subprocess pipe popen
我想从Haskell做一个popen()/ python的subprocess.communicate - 启动一个程序,给它stdin,并得到它的stdout/stderr.什么是最直接/最朴素的方式?
eph*_*ent 12
任意选取MissingH的System.Cmd.Utils标准库的System.Process.它们易于使用,具有高级便利功能(您只需将字符串popen放入并获取字符串,可能是懒惰的)和低级管道功能(实际上为您提供句柄,就像其他语言/框架中的大多数功能一样)).
import System.Process
main = do
let cmd = "mail"
args = ["root@localhost", "-s", "does this act like popen?"]
input = ["Hello, world!"]
(rc, out, err) <- readProcessWithExitCode cmd args input
putStrLn $ "mail exited: " ++ show rc
mapM_ putStrLn $ map ("out: " ++) $ lines out
mapM_ putStrLn $ map ("err: " ++) $ lines err
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |