2
我在Haskell編寫了一個小程序,它通過MIDI控制命令arecordmidi
和aplaymidi
來在我的數碼鋼琴上錄製短暫的即興創作。我將按R鍵,我的程序將使用命令arecordmidi
創建一個新的子過程。當我再次按R時,我想通過終止命令arecordmidi
來停止錄製。如何在Haskell中終止(SIGINT)子進程?
如何終止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
我也在想這個......最終決定暫時使用'terminateProcess',因爲我的小程序仍然只是一個草稿。 – CamilB