Estoy desarrollando un pequeño programa haskell que usa una biblioteca estática externa que he desarrollado en C++. Accede a la lib a través de la FFI (interfaz de función externa) de ghc. Dentro de esta biblioteca me gustaría hacer algunos resultados en la consola. Sin embargo, parece como el lado C++ de las cosas no tiene un identificador correcto para stdout porque la salida no aparece en la consola. Por esto, mis preguntas son:Uso de corrientes stdout/stderr/stdin detrás de FFI
- ¿Se secuestran GHC estas tres corrientes (la salida estándar, la entrada estándar, stderr) o libstdC++ es simplemente no inicializar porque estoy vinculación con GHC?
- ¿Las importaciones de mi FFI deben ser "seguras" si escriben en stdout?
- ¿Cómo puedo pasar el stdout a una función C? ¿Debería simplemente pasarlo directamente o necesito un tipo C?
Notas adicionales: estoy vinculando libstdC++ directamente al ejecutable (es decir GHC -lstdC++ ...) que, con ingenuidad que supuse sería la forma correcta de hacer esto. Parece funcionar bien
responsabilidad: Sigue siendo bastante nuevo en Haskell, por lo que los pasos del bebé por ahora; P
Resultó que el problema era entre la silla y el teclado. Hice un error sin relación tonta debido a mi inexperiencia con Haskell. Tu respuesta fue bastante útil ya que me ayudó a establecer que el stdlibC++ realmente se inicializa correctamente y que simplemente estaba siendo un poco idiota. Por esta razón, obtienes mi respuesta aceptada. ¡Gracias! –