6

我目前正在编写一个 Haskell 程序,该程序执行一些初始化工作,然后调用 ncmpcpp。我想要做的是启动 ncmpcpp 并终止 Haskell 程序,这样就只剩下 ncmpcpp (可选地,程序可以在后台继续运行,只要它不干扰)

但是,即使我能够启动 ncmpcpp,我也无法与之交互。我看到了它的输出,但输入似乎是不可能的。

我目前正在做的是:

import System.Process (createProcess, proc)
...
spawnCurses :: [String] -> IO ()
spawnCurses params = do 
  _ <- createProcess (proc "ncmpcpp" params)
  return ()

我做错了什么/我应该做些什么不同的事情?

4

1 回答 1

6

您试图实现的目标听起来就像exec函数系列所做的那样。看一下executeFile功能。

如果你希望你的父 Haskell 进程在子进程启动后仍然运行,请阅读fork-execforkProcess函数。

可以在http://therning.org/magnus/archives/727forkProcess找到与 with 一起使用的完整示例。executeFile

于 2012-11-06T22:58:39.977 回答