如何获取系统进程的退出代码?

时间:2011-08-26 17:27:09

标签: haskell systems-programming

说我想从Haskell中执行命令unrar x archivename

最好的方法是什么,如何获取命令的退出代码?如果命令退出成功,我想删除其他存档。

2 个答案:

答案 0 :(得分:3)

process库中,您会找到功能readProcessWithExitCode,它可以满足您的需求。类似的东西:

(e,_,_) <- readProcessWithExitCode "unrar" ["unrar", "x", "-p-", "archivename"] ""
if e == ExitSuccess then ... else ...

还有许多其他解决方案,例如system命令。随便挑选。

答案 1 :(得分:3)

来自System.Process的{​​{3}}功能应该可以胜任。

import Control.Monad
import System.Directory
import System.Exit
import System.Process

main = do
    (exitCode, _, _) <- readProcessWithExitCode "unrar" ["x", "archivename"] ""
    when (exitCode == ExitSuccess) $ removeFile "archivename"