2012-11-06 36 views
5

Tôi hiện đang viết chương trình Haskell thực hiện một số công việc khởi tạo và sau đó gọi ncmpcpp. Những gì tôi đang cố gắng làm là bắt đầu ncmpcpp và chấm dứt chương trình Haskell, do đó chỉ còn ncmpcpp (tùy chọn, chương trình có thể tiếp tục chạy ở chế độ nền, miễn là nó không bị ảnh hưởng)Ngã ba thành tập lệnh shell và chấm dứt quá trình gốc với Haskell

Tuy nhiên, mặc dù tôi có thể để bắt đầu ncmpcpp, tôi không thể tương tác với nó. Tôi thấy đầu ra của nó, nhưng đầu vào dường như là không thể.

gì Tôi hiện đang làm là:

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

Tôi đang làm gì sai/Tôi nên làm gì khác nhau?

Trả lời

5

Điều bạn đang cố gắng đạt được những âm thanh giống như những gì mà dòng họ hoạt động của exec. Hãy xem hàm executeFile.

Nếu bạn muốn quy trình Haskell gốc của bạn vẫn chạy sau khi bắt đầu quá trình con đọc về fork-exec và chức năng forkProcess.

Ví dụ hoàn chỉnh về việc sử dụng forkProcess cùng với executeFile có thể được tìm thấy tại http://therning.org/magnus/archives/727.

+0

Đó chính xác là những gì tôi cần. Cảm ơn nhiều! – Sacchan

Các vấn đề liên quan