Skip to content

Proposal: System.Posix.fdReadBuf/fdWriteBuf

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@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.

Trac metadata
Trac field Value
Version 6.10.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component libraries/unix
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information