passing a Handle to a C function
Hal Daume
t-hald@microsoft.com
Wed, 9 Jul 2003 08:31:56 -0700
I have a C function that, for simplicity, has its definition as
something like:
> void myCFun(FILE *fd);
I have a Handle I've opened in Haskell using openFileEx and would like
to pass this to the function. I've tried a bunch of things, the most
recent being:
> foreign import ccall "myHFile.h myCFun" c__myCFun :: Ptr CInt -> IO ()
> myCFun :: Handle -> IO ()
> myCFun (FileHandle handleMV) =3D do
> h__ <- readMVar handleMV
> ptr <- malloc
> poke ptr (toCInt $ haFD h__)
> c__initVars ptr
i've also tried it with just CInt -> IO (), without the ptr, but that
doesn't work either.
Surely someone has done this at some point...or is it even possible
(please say it is)...
- Hal
--
Hal Daume III | hdaume@isi.edu
"Arrest this man, he talks in maths." | www.isi.edu/~hdaume