windows - 在 Haskell 中,waitForProcess 在 Windows 的 cmd.exe 下阻止 Ctrl-C

标签 windows haskell interrupt-handling

我尝试在 Windows 的 cmd.exe 中运行以下 Haskell 程序,在执行 waitForProcess 时,按 ctrl-c 并没有杀死该程序。但如果在 MinGW shell 下运行它就可以工作。有任何想法吗? (注:Windows没有自带“ sleep ”命令,我只是自己写了一个。)

{-# Language OverloadedStrings #-}
import System.Process

main ∷ IO ()
main = do
  putStrLn "sleeping"
  (_, _, _, pHandle) <-
    createProcess CreateProcess { 
          cmdspec = RawCommand "sleep" ["5"]
        , cwd = Nothing
        , env = Nothing
        , std_in = CreatePipe, std_out = CreatePipe, std_err = CreatePipe
        , close_fds = False
        , create_group = False
        } 
  waitForProcess pHandle
  putStrLn "all done"

最佳答案

关于windows - 在 Haskell 中,waitForProcess 在 Windows 的 cmd.exe 下阻止 Ctrl-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14118917/

相关文章:

python - 将 python 脚本作为服务运行时出现问题

windows - 部署的 Qt5 应用程序不打印或不显示打印对话框

haskell - 如何使组合数据构造函数成为类的实例?

haskell cabal +尼克斯 : Generate local documentation for all dependencies in a project

haskell - 我应该在 REPL Haddock 示例中使用 'let' 吗?

linux - 内核栈和用户空间栈

linux-kernel - 被抢占的中断处理程序会发生什么?

windows - 如何使批处理文件将字符串作为命令运行?

scala - Scala 中如何中断异步计算?

windows - MSDN 杂志(架构师杂志)等图表工具