-{-# OPTIONS -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -fno-implicit-prelude #-}
-----------------------------------------------------------------------------
-- |
-- Module : System.IO
-- * Operations on handles
- -- ** Determining the size of a file
+ -- ** Determining and changing the size of a file
hFileSize, -- :: Handle -> IO Integer
+#ifdef __GLASGOW_HASKELL__
+ hSetFileSize, -- :: Handle -> Integer -> IO ()
+#endif
-- ** Detecting the end of input
hGetBufNonBlocking, -- :: Handle -> Ptr a -> Int -> IO Int
#endif
- module System.IO.Error,
+ -- * Temporary files
+
+#ifdef __GLASGOW_HASKELL__
+ openTempFile,
+ openBinaryTempFile,
+#endif
) where
#ifdef __GLASGOW_HASKELL__
import GHC.IOBase -- Together these four Prelude modules define
import GHC.Handle -- all the stuff exported by IO for the GHC version
import GHC.IO
-import GHC.ST ( fixST )
import GHC.Exception
import GHC.Num
import GHC.Read
import NHC.IOExtras (fixIO)
#endif
-import System.IO.Error (
- isAlreadyExistsError, isDoesNotExistError, -- :: IOError -> Bool
- isAlreadyInUseError, isFullError,
- isEOFError, isIllegalOperation,
- isPermissionError, isUserError,
-
- ioeGetErrorString, -- :: IOError -> String
- ioeGetHandle, -- :: IOError -> Maybe Handle
- ioeGetFileName, -- :: IOError -> Maybe FilePath
-
- try, -- :: IO a -> IO (Either IOError a)
-
- -- re-exports of Prelude names
- IOError,
- ioError, -- :: IOError -> IO a
- userError, -- :: String -> IOError
- catch -- :: IO a -> (IOError -> IO a) -> IO a
- )
-
-- -----------------------------------------------------------------------------
-- Standard IO
--
-- This operation may fail with:
--
--- * 'isEOFError' if the end of file has been reached.
+-- * 'System.IO.Error.isEOFError' if the end of file has been reached.
hReady :: Handle -> IO Bool
hReady h = hWaitForInput h 0
--
-- This operation may fail with:
--
--- * 'isFullError' if the device is full; or
+-- * 'System.IO.Error.isFullError' if the device is full; or
--
--- * 'isPermissionError' if another system resource limit would be exceeded.
+-- * 'System.IO.Error.isPermissionError' if another system resource limit would be exceeded.
hPrint :: Show a => Handle -> a -> IO ()
hPrint hdl = hPutStrLn hdl . show
-- the file until the entire contents of the file have been consumed.
-- It follows that an attempt to write to a file (using 'writeFile', for
-- example) that was earlier opened by 'readFile' will usually result in
--- failure with 'isAlreadyInUseError'.
+-- failure with 'System.IO.Error.isAlreadyInUseError'.