của haskell Tôi đang phát triển một chương trình haskell nhỏ sử dụng thư viện tĩnh bên ngoài mà tôi đã phát triển trong C++. Nó truy cập lib thông qua FFI của ghc (giao diện chức năng nước ngoài). Bên trong thư viện này tôi muốn làm một số đầu ra cho giao diện điều khiển. Tuy nhiên, nó trông với tôi như bên C++ của sự vật không có một xử lý chính xác để stdout vì đầu ra không xuất hiện trên bàn điều khiển. Vì vậy, sau đó, câu hỏi của tôi là:Sử dụng các luồng stdout/stderr/stdin sau FFI
- Liệu GHC cướp ba suối (stdout, stdin, stderr) hoặc là libstdC++ đơn giản là không khởi tạo cho họ bởi vì tôi đang liên kết với GHC?
- Việc nhập khẩu FFI của tôi có cần phải "an toàn" nếu họ viết để stdout không?
- Làm cách nào để chuyển stdout sang hàm C? Tôi có nên đơn giản chuyển nó trực tiếp hay tôi cần loại C?
Ghi chú thêm: Tôi đang liên kết libstdC++ trực tiếp đến việc thực thi (ví dụ: GHC -lstdC++ ...) mà tôi ngây thơ giả định sẽ là con đường đúng để làm điều này. Dường như làm việc tốt
Disclaimer: Tuy khá mới để Haskell, vì vậy bước nhỏ cho bây giờ; P
Hóa ra vấn đề là giữa ghế và bàn phím. Tôi đã mắc phải một sai lầm ngớ ngẩn không liên quan do sự thiếu kinh nghiệm của tôi với Haskell. Câu trả lời của bạn khá hữu ích vì nó đã giúp tôi thiết lập rằng stdlibC++ thực sự khởi tạo chính xác và tôi chỉ đơn thuần là một chút moron. Vì lý do này bạn nhận được câu trả lời được chấp nhận của tôi. Cảm ơn! –