Documentation
type FileOffset = COff
myfdRead :: Fd -> Ptr CChar -> ByteCount -> IO (Either Errno ByteCount)Source
Alas, GHC provides no function to read from Fd to an allocated buffer. The library function fdRead is not appropriate as it returns a string already. I'd rather get data from a buffer. Furthermore, fdRead (at least in GHC) allocates a new buffer each time it is called. This is a waste. Yet another problem with fdRead is in raising an exception on any IOError or even EOF. I'd rather avoid exceptions altogether.
myfdSeek :: Fd -> SeekMode -> FileOffset -> IO (Either Errno FileOffset)Source
The following fseek procedure throws no exceptions.