base-4.0.0.0: Basic librariesContentsIndex
Foreign.C.Error
Portabilityportable
Stabilityprovisional
Maintainerffi@haskell.org
Contents
Haskell representations of errno values
Common errno symbols
Errno functions
Guards for IO operations that may fail
Description
C-specific Marshalling support: Handling of C "errno" error codes.
Synopsis
newtype Errno = Errno CInt
e2BIG :: Errno
isValidErrno :: Errno -> Bool
getErrno :: IO Errno
resetErrno :: IO ()
errnoToIOError :: String -> Errno -> Maybe Handle -> Maybe String -> IOError
throwErrno :: String -> IO a
throwErrnoIf :: (a -> Bool) -> String -> IO a -> IO a
throwErrnoIf_ :: (a -> Bool) -> String -> IO a -> IO ()
throwErrnoIfRetry :: (a -> Bool) -> String -> IO a -> IO a
throwErrnoIfRetry_ :: (a -> Bool) -> String -> IO a -> IO ()
throwErrnoIfMinus1 :: Num a => String -> IO a -> IO a
throwErrnoIfMinus1_ :: Num a => String -> IO a -> IO ()
throwErrnoIfMinus1Retry :: Num a => String -> IO a -> IO a
throwErrnoIfMinus1Retry_ :: Num a => String -> IO a -> IO ()
throwErrnoIfNull :: String -> IO (Ptr a) -> IO (Ptr a)
throwErrnoIfNullRetry :: String -> IO (Ptr a) -> IO (Ptr a)
throwErrnoIfRetryMayBlock :: (a -> Bool) -> String -> IO a -> IO b -> IO a
throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> String -> IO a -> IO b -> IO ()
throwErrnoIfMinus1RetryMayBlock :: Num a => String -> IO a -> IO b -> IO a
throwErrnoIfMinus1RetryMayBlock_ :: Num a => String -> IO a -> IO b -> IO ()
throwErrnoIfNullRetryMayBlock :: String -> IO (Ptr a) -> IO b -> IO (Ptr a)
throwErrnoPath :: String -> FilePath -> IO a
throwErrnoPathIf :: (a -> Bool) -> String -> FilePath -> IO a -> IO a
throwErrnoPathIf_ :: (a -> Bool) -> String -> FilePath -> IO a -> IO ()
throwErrnoPathIfNull :: String -> FilePath -> IO (Ptr a) -> IO (Ptr a)
throwErrnoPathIfMinus1 :: Num a => String -> FilePath -> IO a -> IO a
throwErrnoPathIfMinus1_ :: Num a => String -> FilePath -> IO a -> IO ()
Haskell representations of errno values
newtype Errno
Haskell representation for errno values. The implementation is deliberately exposed, to allow users to add their own definitions of Errno values.
Constructors
Errno CInt
show/hide Instances
Common errno symbols
Different operating systems and/or C libraries often support different values of errno. This module defines the common values, but due to the open definition of Errno users may add definitions which are not predefined.
e2BIG :: Errno
Errno functions
isValidErrno :: Errno -> Bool
Yield True if the given Errno value is valid on the system. This implies that the Eq instance of Errno is also system dependent as it is only defined for valid values of Errno.
getErrno :: IO Errno
Get the current value of errno in the current thread.
resetErrno :: IO ()
Reset the current thread's errno value to eOK.
errnoToIOError
:: Stringthe location where the error occurred
-> Errnothe error number
-> Maybe Handleoptional handle associated with the error
-> Maybe Stringoptional filename associated with the error
-> IOError
Construct a Haskell 98 I/O error based on the given Errno value. The optional information can be used to improve the accuracy of error messages.
throwErrno
::
=> Stringtextual description of the error location
-> IO a
Throw an IOError corresponding to the current value of getErrno.
Guards for IO operations that may fail
throwErrnoIf
::
=> a -> Boolpredicate to apply to the result value of the IO operation
-> Stringtextual description of the location
-> IO athe IO operation to be executed
-> IO a
Throw an IOError corresponding to the current value of getErrno if the result value of the IO action meets the given predicate.
throwErrnoIf_ :: (a -> Bool) -> String -> IO a -> IO ()
as throwErrnoIf, but discards the result of the IO action after error handling.
throwErrnoIfRetry :: (a -> Bool) -> String -> IO a -> IO a
as throwErrnoIf, but retry the IO action when it yields the error code eINTR - this amounts to the standard retry loop for interrupted POSIX system calls.
throwErrnoIfRetry_ :: (a -> Bool) -> String -> IO a -> IO ()
as throwErrnoIfRetry, but discards the result.
throwErrnoIfMinus1 :: Num a => String -> IO a -> IO a
Throw an IOError corresponding to the current value of getErrno if the IO action returns a result of -1.
throwErrnoIfMinus1_ :: Num a => String -> IO a -> IO ()
as throwErrnoIfMinus1, but discards the result.
throwErrnoIfMinus1Retry :: Num a => String -> IO a -> IO a
Throw an IOError corresponding to the current value of getErrno if the IO action returns a result of -1, but retries in case of an interrupted operation.
throwErrnoIfMinus1Retry_ :: Num a => String -> IO a -> IO ()
as throwErrnoIfMinus1, but discards the result.
throwErrnoIfNull :: String -> IO (Ptr a) -> IO (Ptr a)
Throw an IOError corresponding to the current value of getErrno if the IO action returns nullPtr.
throwErrnoIfNullRetry :: String -> IO (Ptr a) -> IO (Ptr a)
Throw an IOError corresponding to the current value of getErrno if the IO action returns nullPtr, but retry in case of an interrupted operation.
throwErrnoIfRetryMayBlock
::
=> a -> Boolpredicate to apply to the result value of the IO operation
-> Stringtextual description of the location
-> IO athe IO operation to be executed
-> IO baction to execute before retrying if an immediate retry would block
-> IO a
as throwErrnoIfRetry, but checks for operations that would block and executes an alternative action before retrying in that case.
throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> String -> IO a -> IO b -> IO ()
as throwErrnoIfRetryMayBlock, but discards the result.
throwErrnoIfMinus1RetryMayBlock :: Num a => String -> IO a -> IO b -> IO a
as throwErrnoIfMinus1Retry, but checks for operations that would block.
throwErrnoIfMinus1RetryMayBlock_ :: Num a => String -> IO a -> IO b -> IO ()
as throwErrnoIfMinus1RetryMayBlock, but discards the result.
throwErrnoIfNullRetryMayBlock :: String -> IO (Ptr a) -> IO b -> IO (Ptr a)
as throwErrnoIfNullRetry, but checks for operations that would block.
throwErrnoPath :: String -> FilePath -> IO a
as throwErrno, but exceptions include the given path when appropriate.
throwErrnoPathIf :: (a -> Bool) -> String -> FilePath -> IO a -> IO a
as throwErrnoIf, but exceptions include the given path when appropriate.
throwErrnoPathIf_ :: (a -> Bool) -> String -> FilePath -> IO a -> IO ()
as throwErrnoIf_, but exceptions include the given path when appropriate.
throwErrnoPathIfNull :: String -> FilePath -> IO (Ptr a) -> IO (Ptr a)
as throwErrnoIfNull, but exceptions include the given path when appropriate.
throwErrnoPathIfMinus1 :: Num a => String -> FilePath -> IO a -> IO a
as throwErrnoIfMinus1, but exceptions include the given path when appropriate.
throwErrnoPathIfMinus1_ :: Num a => String -> FilePath -> IO a -> IO ()
as throwErrnoIfMinus1_, but exceptions include the given path when appropriate.
Produced by Haddock version 2.3.0