【发布时间】:2016-12-28 18:26:05
【问题描述】:
我正在用 Haskell 编写一个小程序,它操纵命令 arecordmidi 和 aplaymidi 通过 MIDI 在我的数码钢琴上录制简短的即兴演奏。我将按下 R 键,我的程序将使用命令arecordmidi 创建一个新的子进程。当我再次按 R 时,我希望通过终止命令 arecordmidi 来停止录制。
如何终止arecordmidi 子进程?如果在 shell 中,CTRL+C 将停止录制。这就是我想要的。
我正在使用以下代码来创建子流程:
import System.Process
main = do
let rec_command = "arecordmidi -p \"CASIO USB-MIDI\" myRecording.midi"
process <- createProcess (shell rec_command)
-- I could try the following code, but the documentation of System.Process
-- says it's bad to use terminateProcess:
let (_, _, _, processHandle) = process
terminateProcess processHandle
【问题讨论】: