HORIZON HASKELLDocslts/ghc-10.0.x8fef28d2026-11-02Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8fef28d · 2026-11-02

Moduleunix-2.8.8.0Haskell2010

System.Posix.Fcntl

POSIX file control support

Contents
  1. File allocation
  2. File caching
Synopsis
  • Packageunix-2.8.8.0
  • Exports5
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceFcntl.hsc

File allocation

valuefileAllocate :: Fd -> FileOffset -> FileOffset -> IO ()

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

File caching

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.

valuefileSetCaching :: Fd -> Bool -> IO ()

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.