6

現在、いくつかの初期化作業を行ってから ncmpcpp を呼び出す Haskell プログラムを作成しています。私がやろうとしているのは、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関数について読んでください。

forkProcessと一緒に使用する完全な例はexecuteFilehttp://therning.org/magnus/archives/727にあります。

于 2012-11-06T22:58:39.977 に答える