Sto sviluppando un piccolo programma haskell che utilizza una libreria statica esterna che ho sviluppato in C++. Accede alla lib attraverso FFI di ghc (interfaccia di funzione straniera). All'interno di questa libreria mi piacerebbe fare un po 'di output sulla console. Tuttavia, è come come il lato C++ delle cose non ha un handle corretto per lo stdout perché l'output non appare sulla console. Allora, le mie domande sono:Utilizzo di stdout/stderr/stdin streams dietro l'FFI di haskell
- Vuol ghc dirottare questi tre flussi (stdout, stdin, stderr) o è libstdC++ semplicemente non l'inizializzazione perché sto collegando con GHC?
- Le mie importazioni FFI devono essere "sicure" se scrivono su stdout?
- Come posso passare lo stdout a una funzione C? Dovrei semplicemente passarlo direttamente o ho bisogno di un tipo C?
Note aggiuntive: sto collegando libstdC++ direttamente all'eseguibile (vale a dire GHC -lstdC++ ...) che ho ingenuamente pensato sarebbe il modo corretto di fare questo. Sembra funzionare bene
responsabilità: ancora abbastanza nuovo per Haskell, così piccoli passi per ora; P
Si è scoperto che il problema era tra la sedia e la tastiera. Ho fatto uno stupido errore non correlato a causa della mia inesperienza con Haskell. La tua risposta è stata molto utile in quanto mi ha aiutato a stabilire che lo stdlibC++ in realtà si inizializza correttamente e io stavo semplicemente diventando un idiota. Per questo motivo ottieni la mia risposta accettata. Grazie! –