Foreign.C.Error
Copyright | (c) The FFI task force 2001 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | [email protected] |
Stability | provisional |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Contents
Description
C-specific Marshalling support: Handling of C "errno" error codes.
Haskell representations of errno values
Haskell representation for errno
values. The implementation is deliberately exposed, to allow users to add their own definitions of Errno
values.
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.
Since: 4.7.0.0
ePROTONOSUPPORT :: Errno Source
eSOCKTNOSUPPORT :: Errno Source
Errno
functions
isValidErrno :: Errno -> Bool Source
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
.
Get the current value of errno
in the current thread.
resetErrno :: IO () Source
Reset the current thread's errno
value to eOK
.
Arguments
:: String | the location where the error occurred |
-> Errno | the error number |
-> Maybe Handle | optional handle associated with the error |
-> Maybe String | optional filename associated with the error |
-> IOError |
Construct an IOError
based on the given Errno
value. The optional information can be used to improve the accuracy of error messages.
Throw an IOError
corresponding to the current value of getErrno
.
Guards for IO operations that may fail
Arguments
:: (a -> Bool) | predicate to apply to the result value of the |
-> String | textual description of the location |
-> IO a | the |
-> 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 () Source
as throwErrnoIf
, but discards the result of the IO
action after error handling.
throwErrnoIfRetry :: (a -> Bool) -> String -> IO a -> IO a Source
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 () Source
as throwErrnoIfRetry
, but discards the result.
throwErrnoIfMinus1 :: (Eq a, Num a) => String -> IO a -> IO a Source
Throw an IOError
corresponding to the current value of getErrno
if the IO
action returns a result of -1
.
throwErrnoIfMinus1_ :: (Eq a, Num a) => String -> IO a -> IO () Source
as throwErrnoIfMinus1
, but discards the result.
throwErrnoIfMinus1Retry :: (Eq a, Num a) => String -> IO a -> IO a Source
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_ :: (Eq a, Num a) => String -> IO a -> IO () Source
as throwErrnoIfMinus1
, but discards the result.
throwErrnoIfNull :: String -> IO (Ptr a) -> IO (Ptr a) Source
Throw an IOError
corresponding to the current value of getErrno
if the IO
action returns nullPtr
.
throwErrnoIfNullRetry :: String -> IO (Ptr a) -> IO (Ptr a) Source
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 Source
Arguments
:: (a -> Bool) | predicate to apply to the result value of the |
-> String | textual description of the location |
-> IO a | the |
-> IO b | action to execute before retrying if an immediate retry would block |
-> IO a |
as throwErrnoIfRetry
, but additionally if the operation yields the error code eAGAIN
or eWOULDBLOCK
, an alternative action is executed before retrying.
throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> String -> IO a -> IO b -> IO () Source
as throwErrnoIfRetryMayBlock
, but discards the result.
throwErrnoIfMinus1RetryMayBlock :: (Eq a, Num a) => String -> IO a -> IO b -> IO a Source
as throwErrnoIfMinus1Retry
, but checks for operations that would block.
throwErrnoIfMinus1RetryMayBlock_ :: (Eq a, Num a) => String -> IO a -> IO b -> IO () Source
as throwErrnoIfMinus1RetryMayBlock
, but discards the result.
throwErrnoIfNullRetryMayBlock :: String -> IO (Ptr a) -> IO b -> IO (Ptr a) Source
as throwErrnoIfNullRetry
, but checks for operations that would block.
throwErrnoPath :: String -> FilePath -> IO a Source
as throwErrno
, but exceptions include the given path when appropriate.
throwErrnoPathIf :: (a -> Bool) -> String -> FilePath -> IO a -> IO a Source
as throwErrnoIf
, but exceptions include the given path when appropriate.
throwErrnoPathIf_ :: (a -> Bool) -> String -> FilePath -> IO a -> IO () Source
as throwErrnoIf_
, but exceptions include the given path when appropriate.
throwErrnoPathIfNull :: String -> FilePath -> IO (Ptr a) -> IO (Ptr a) Source
as throwErrnoIfNull
, but exceptions include the given path when appropriate.
throwErrnoPathIfMinus1 :: (Eq a, Num a) => String -> FilePath -> IO a -> IO a Source
as throwErrnoIfMinus1
, but exceptions include the given path when appropriate.
throwErrnoPathIfMinus1_ :: (Eq a, Num a) => String -> FilePath -> IO a -> IO () Source
as throwErrnoIfMinus1_
, but exceptions include the given path when appropriate.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Foreign-C-Error.html