| Copyright | (c) The University of Glasgow 2014 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | provisional |
| Portability | non-portable (requires POSIX) |
| Safe Haskell | Safe |
| Language | Haskell2010 |
System.Posix.Fcntl
Contents
Description
POSIX file control support
Since: unix-2.7.1.0
Synopsis
- data Advice
- fileAdvise :: Fd -> FileOffset -> FileOffset -> Advice -> IO ()
- fileAllocate :: Fd -> FileOffset -> FileOffset -> IO ()
- fileGetCaching :: Fd -> IO Bool
- fileSetCaching :: Fd -> Bool -> IO ()
File allocation
Advice parameter for fileAdvise operation.
For more details, see documentation of posix_fadvise(2).
Since: unix-2.7.1.0
fileAdvise :: Fd -> FileOffset -> FileOffset -> Advice -> IO () Source #
Performs posix_fadvise(2) operation on file-descriptor.
If platform does not provide posix_fadvise(2) fileAdvise
becomes a no-op.
(use #if HAVE_POSIX_FADVISE CPP guard to detect availability)
Since: unix-2.7.1.0
fileAllocate :: Fd -> FileOffset -> FileOffset -> IO () Source #
Performs posix_fallocate(2) operation on file-descriptor.
Throws IOError ("unsupported operation") if platform does not
provide posix_fallocate(2).
(use #if HAVE_POSIX_FALLOCATE CPP guard to detect availability).
Since: unix-2.7.1.0
File caching
fileGetCaching :: Fd -> IO Bool Source #
Performs the fcntl(2) operation on a file-desciptor to get the cache mode.
If the cache mode is False, then cache effects for file system reads and
writes are minimised or otherwise eliminated. If the cache mode is True,
then cache effects occur like normal.
On Linux, FreeBSD, and NetBSD this checks whether the O_DIRECT file flag is
set.
Throws IOError ("unsupported operation") if platform does not support
getting the cache mode.
Use #if HAVE_O_DIRECT CPP guard to detect availability. Use #include
"HsUnix.h" to bring HAVE_O_DIRECT into scope.
Since: unix-2.8.7.0
fileSetCaching :: Fd -> Bool -> IO () Source #
Performs the fcntl(2) operation on a file-desciptor to set the cache
mode.
If the cache mode is False, then cache effects for file system reads and
writes are minimised or otherwise eliminated. If the cache mode is True,
then cache effects occur like normal.
On Linux, FreeBSD, and NetBSD this sets the O_DIRECT file flag. On OSX,
this sets the F_NOCACHE fcntl flag.
Throws IOError ("unsupported operation") if platform does not support
setting the cache mode.
Use #if HAVE_O_DIRECT || HAVE_F_NOCACHE CPP guard to detect availability.
Use #include "HsUnix.h" to bring HAVE_O_DIRECT and HAVE_F_NOCACHE into
scope.
Since: unix-2.8.7.0