Portability | non-portable (requires POSIX.1, XPG4.2) |
---|---|
Stability | experimental |
Maintainer | [email protected] |
Safe Haskell | None |
System.Posix.IO.ByteString.Lazy
Contents
Description
Provides a lazy-ByteString
file-descriptor based I/O
API, designed loosely after the String
file-descriptor based
I/O API in System.Posix.IO. The functions here wrap standard
C implementations of the functions specified by the ISO/IEC
9945-1:1990 (``POSIX.1'') and X/Open Portability Guide Issue
4, Version 2 (``XPG4.2'') specifications.
These functions are provided mainly as a convenience to avoid
boilerplate code converting between lazy ByteString
and
strict [
. It may be depricated in the future.
ByteString
]
- fdRead :: Fd -> ByteCount -> IO ByteString
- fdPread :: Fd -> ByteCount -> FileOffset -> IO ByteString
- fdWrites :: Fd -> ByteString -> IO (ByteCount, ByteString)
- fdWritev :: Fd -> ByteString -> IO ByteCount
I/O with file descriptors
Reading
Arguments
:: Fd | |
-> ByteCount | How many bytes to try to read. |
-> IO ByteString | The bytes read. |
Read data from an Fd
and convert it to a ByteString
.
Throws an exception if this is an invalid descriptor, or EOF has
been reached. This is a thin wrapper around fdRead
.
Arguments
:: Fd | |
-> ByteCount | How many bytes to try to read. |
-> FileOffset | Where to read the data from. |
-> IO ByteString | The bytes read. |
Read data from a specified position in the Fd
and convert
it to a ByteString
, without altering the position stored
in the Fd
. Throws an exception if this is an invalid descriptor,
or EOF has been reached. This is a thin wrapper around
fdPread
.
Since: 0.3.1
Writing
Arguments
:: Fd | |
-> ByteString | The string to write. |
-> IO (ByteCount, ByteString) | How many bytes were actually written, and the remaining (unwritten) string. |
Write a ByteString
to an Fd
. This function makes one
write(2)
system call per chunk, as per fdWrites
.
Arguments
:: Fd | |
-> ByteString | The string to write. |
-> IO ByteCount | How many bytes were actually written. |
Write a ByteString
to an Fd
. This function makes a
single writev(2)
system call, as per fdWritev
.