指定コマンドを別プロセスで起動
Posted feedbacks - Haskell
System.Processモジュールの runInteractiveCommand を使用しています。
同モジュールの waitForProcess は System.Exit モジュールの ExitCode型のIOを返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import IO
import System.Process
import System.Exit
run :: String -> IO ()
run cmd = do (ih, oh, eh, ph) <- runInteractiveCommand cmd
putStrLn =<< hGetContents oh
status <- waitForProcess ph
case status of
ExitSuccess -> putStrLn $ cmd ++ " ok"
ExitFailure code -> putStr "error: " >> print code
main :: IO ()
main = run "ls -la"
|


todogzm
#5353()
Rating4/8=0.50
与えられた文字列のコマンドを、別プロセスで実行してください。 異なるPIDのプロセスが立ち上がり、指定したコマンドを実行することが条件です。
あわせて、実行結果のリターンコードと、別プロセスが出力した標準出力を受け取る方法も記載してください。
今回投稿する上で、別プロセスとして実行するコマンドの与え方は自由ですが、実行した結果、何らかの損害を与えるようなコマンドは埋め込まないようにお願いします。
[ reply ]