저는 C++에서 개발 한 외부 정적 라이브러리를 사용하는 작은 haskell 프로그램을 개발 중입니다. ghc의 FFI (외부 함수 인터페이스)를 통해 lib에 액세스합니다. 이 라이브러리 안에 콘솔에 출력하고 싶습니다. 그러나, 보이는 내게 보이는 C + + 측면의 출력이 콘솔에 나타나지 않기 때문에 stdout에 올바른 핸들을 가지고 있지 않습니다. 그럼, 내 질문은 :haskell의 FFI 뒤에 stdout/stderr/stdin 스트림 사용
- 는 GHC이 세 스트림 (표준 출력, 표준 입력, 표준 에러)를 납치 또는 내가 GHC와 연결하고 있습니다 때문에 단순히 초기화하지 ++ 된 libstdc입니다합니까?
- stdout에 글을 쓰면 FFI 가져 오기가 "안전"해야합니까?
- stdout을 C 함수에 전달하는 방법은 무엇입니까? 나는 단순히 그것을 직접 전달해야합니까, 아니면 C 타입이 필요합니까?
추가 참고 : 나는 ++ 직접 실행에 된 libstdc 연결하고있어 (즉 GHC -lstdC++ ...) 나는 순진하게도이 일을 올바른 방법이 될 것이라고 가정한다. 잘
면책 조항 작동하는 것 같다 : 지금은 하스켈 꽤 새로운 여전히, 그래서 아기 단계; P
이 문제가 의자와 키보드 사이였다 밝혀졌다. 나는 하스켈에 대한 나의 미숙함 때문에 바보 같은 무관 한 실수를 저질렀다. 귀하의 대답은 제가 stdlibC++가 실제로 올바르게 초기화된다는 것을 입증하는 데 도움이되었고, 저는 단지 약간의 바보였습니다. 이런 이유로 당신은 나의 받아 들여진 응답을 얻는다. 감사! –