[nhc-users] openFd?

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Tue Jan 4 09:28:53 EST 2005


David Roundy <droundy at abridgegame.org> writes:

> I'm wondering if there is any equivalent to GHC.Handle.openFd which I can
> use with nhc98? It's nice being able to convert a file descriptor into a
> Handle...

I had a quick look at the documentation for openFd, and it wasn't
very informative - no text, just a signature:

    openFd :: FD -> Maybe FDType -> FilePath -> IOMode
              -> Bool -> Bool -> IO Handle

What are the FPType, FilePath, IOMode, and Bool arguments for?  Also,
there seem to be plenty of operations that /use/ an FD, but I couldn't
find one that /returns/ an FD, so how are they created?.

However, my guess is that these library functions are actually a
thin skin over some fairly standard C library, in which case you
can probably write a little bit of FFI code to interface to the same
functionality.

nhc98's representation of a Handle as a wrapper over C's FILE* type is
"struct FileDesc", defined in src/runtime.h, and an example of some FFI
stuff to manipulate a Handle can be seen in src/prelude/IO/OpenFile.hs
and src/runtime/Builtin/cOpen.c

Regards,
    Malcolm


More information about the Nhc-users mailing list