Proposal: add System.Posix.fdReadBuf/fdWriteBuf

Simon Marlow marlowsd at gmail.com
Mon May 11 11:29:32 EDT 2009


http://hackage.haskell.org/trac/ghc/ticket/3218

 From the ticket:

Functions for reading/writing actual arrays of bytes in memory.  At the 
moment, `System.Posix` only provides

{{{
fdRead :: Fd
        -> ByteCount -- ^How many bytes to read
        -> IO (String, ByteCount) -- ^The bytes read, how many bytes 
were read.

fdWrite :: Fd -> String -> IO ByteCount
}}}

which are not only wrong (`String`?), but too slow for many purposes.

I propose

{{{
Mon May 11 16:21:02 BST 2009  Simon Marlow <marlowsd at gmail.com>
   * add fdReadBuf, fdWriteBuf

   -- | Read data from an 'Fd' into memory.  This is exactly equivalent
   -- to the POSIX @read@ function.
   fdReadBuf :: Fd
             -> Ptr Word8    -- ^ Memory in which to put the data
             -> ByteCount    -- ^ Maximum number of bytes to read
             -> IO Bytecount -- ^ Number of bytes read (zero for EOF)

   -- | Write data from memory to an 'Fd'.  This is exactly equivalent
   -- to the POSIX @write@ function.
   fdWriteBuf :: Fd
              -> Ptr Word8    -- ^ Memory containing the data to write
              -> ByteCount    -- ^ Maximum number of bytes to write
              -> IO ByteCount -- ^ Number of bytes written
}}}

darcs patches are attached to the ticket.

Discussion: 2 weeks (ends 25 May)

Cheers,
	Simon


More information about the Libraries mailing list