Haskell から popen() / python の subprocess.communicate を実行したい - プログラムを開始し、stdin を与え、stdout/stderr を取得します。これを行うための最も直接的/ハスケル的な方法は何ですか?
質問する
1255 次
2 に答える
12
MissingHと標準ライブラリのSystem.Processのいずれかを選択します。これらは、高レベルの便利な関数 (文字列を投げて文字列を取得するだけで、おそらく遅延) と低レベルの配管関数 (他の言語/フレームワークのほとんどの関数のように、実際にハンドルを提供します) の両方で簡単に使用できます。 )。System.Cmd.Utils
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
于 2009-11-11T01:29:57.127 に答える
0
他のオプションは、shellyパッケージを使用することです
于 2013-12-04T19:17:07.430 に答える