I'm developing a small haskell program that uses an external static library I've developed in C++. It accesses the lib through ghc's FFI (foreign function interface). Inside this library I would like to do some output to the console. However, it looks to me like the c++ side of things does not have a correct handle to stdout because output does not appear on the console. So then, my questions are:
- Does ghc hijack these three streams (stdout, stdin, stderr) or is libstdc++ simply not initializing them because I'm linking with ghc?
- Do my FFI imports need to be "safe" if they write to stdout?
- How can I pass stdout to a C function? Should I simply pass it directly or do I need a C type?
Additional notes: I'm linking libstdc++ directly to the executable (i.e. ghc -lstdc++ ...) which I naively assumed would be the correct way of doing this. Seems to work well
Disclaimer: Still pretty new to Haskell, so baby steps for now ;P