| base-3.0.2.0: Basic libraries | Source code | Contents | Index
Foreign.C.Error |
Portability | portable
Stability | provisional
Maintainer | ffi@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
eOK :: Errno
e2BIG :: Errno
eACCES :: Errno
eADDRINUSE :: Errno
eADDRNOTAVAIL :: Errno
eADV :: Errno
eAFNOSUPPORT :: Errno
eAGAIN :: Errno
eALREADY :: Errno
eBADF :: Errno
eBADMSG :: Errno
eBADRPC :: Errno
eBUSY :: Errno
eCHILD :: Errno
eCOMM :: Errno
eCONNABORTED :: Errno
eCONNREFUSED :: Errno
eCONNRESET :: Errno
eDEADLK :: Errno
eDESTADDRREQ :: Errno
eDIRTY :: Errno
eDOM :: Errno
eDQUOT :: Errno
eEXIST :: Errno
eFAULT :: Errno
eFBIG :: Errno
eFTYPE :: Errno
eHOSTDOWN :: Errno
eHOSTUNREACH :: Errno
eIDRM :: Errno
eILSEQ :: Errno
eINPROGRESS :: Errno
eINTR :: Errno
eINVAL :: Errno
eIO :: Errno
eISCONN :: Errno
eISDIR :: Errno
eLOOP :: Errno
eMFILE :: Errno
eMLINK :: Errno
eMSGSIZE :: Errno
eMULTIHOP :: Errno
eNAMETOOLONG :: Errno
eNETDOWN :: Errno
eNETRESET :: Errno
eNETUNREACH :: Errno
eNFILE :: Errno
eNOBUFS :: Errno
eNODATA :: Errno
eNODEV :: Errno
eNOENT :: Errno
eNOEXEC :: Errno
eNOLCK :: Errno
eNOLINK :: Errno
eNOMEM :: Errno
eNOMSG :: Errno
eNONET :: Errno
eNOPROTOOPT :: Errno
eNOSPC :: Errno
eNOSR :: Errno
eNOSTR :: Errno
eNOSYS :: Errno
eNOTBLK :: Errno
eNOTCONN :: Errno
eNOTDIR :: Errno
eNOTEMPTY :: Errno
eNOTSOCK :: Errno
eNOTTY :: Errno
eNXIO :: Errno
eOPNOTSUPP :: Errno
ePERM :: Errno
ePFNOSUPPORT :: Errno
ePIPE :: Errno
ePROCLIM :: Errno
ePROCUNAVAIL :: Errno
ePROGMISMATCH :: Errno
ePROGUNAVAIL :: Errno
ePROTO :: Errno
ePROTONOSUPPORT :: Errno
ePROTOTYPE :: Errno
eRANGE :: Errno
eREMCHG :: Errno
eREMOTE :: Errno
eROFS :: Errno
eRPCMISMATCH :: Errno
eRREMOTE :: Errno
eSHUTDOWN :: Errno
eSOCKTNOSUPPORT :: Errno
eSPIPE :: Errno
eSRCH :: Errno
eSRMNT :: Errno
eSTALE :: Errno
eTIME :: Errno
eTIMEDOUT :: Errno
eTOOMANYREFS :: Errno
eTXTBSY :: Errno
eUSERS :: Errno
eWOULDBLOCK :: Errno
eXDEV :: 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 | Source
Haskell representation for `errno` values. The implementation is deliberately exposed, to allow users to add their own definitions of `Errno` values.
Constructors
Errno CInt |
Instances
Eq Errno
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.
eOK :: Errno | Source
e2BIG :: Errno | Source
eACCES :: Errno | Source
eADDRINUSE :: Errno | Source
eADDRNOTAVAIL :: Errno | Source
eADV :: Errno | Source
eAFNOSUPPORT :: Errno | Source
eAGAIN :: Errno | Source
eALREADY :: Errno | Source
eBADF :: Errno | Source
eBADMSG :: Errno | Source
eBADRPC :: Errno | Source
eBUSY :: Errno | Source
eCHILD :: Errno | Source
eCOMM :: Errno | Source
eCONNABORTED :: Errno | Source
eCONNREFUSED :: Errno | Source
eCONNRESET :: Errno | Source
eDEADLK :: Errno | Source
eDESTADDRREQ :: Errno | Source
eDIRTY :: Errno | Source
eDOM :: Errno | Source
eDQUOT :: Errno | Source
eEXIST :: Errno | Source
eFAULT :: Errno | Source
eFBIG :: Errno | Source
eFTYPE :: Errno | Source
eHOSTDOWN :: Errno | Source
eHOSTUNREACH :: Errno | Source
eIDRM :: Errno | Source
eILSEQ :: Errno | Source
eINPROGRESS :: Errno | Source
eINTR :: Errno | Source
eINVAL :: Errno | Source
eIO :: Errno | Source
eISCONN :: Errno | Source
eISDIR :: Errno | Source
eLOOP :: Errno | Source
eMFILE :: Errno | Source
eMLINK :: Errno | Source
eMSGSIZE :: Errno | Source
eMULTIHOP :: Errno | Source
eNAMETOOLONG :: Errno | Source
eNETDOWN :: Errno | Source
eNETRESET :: Errno | Source
eNETUNREACH :: Errno | Source
eNFILE :: Errno | Source
eNOBUFS :: Errno | Source
eNODATA :: Errno | Source
eNODEV :: Errno | Source
eNOENT :: Errno | Source
eNOEXEC :: Errno | Source
eNOLCK :: Errno | Source
eNOLINK :: Errno | Source
eNOMEM :: Errno | Source
eNOMSG :: Errno | Source
eNONET :: Errno | Source
eNOPROTOOPT :: Errno | Source
eNOSPC :: Errno | Source
eNOSR :: Errno | Source
eNOSTR :: Errno | Source
eNOSYS :: Errno | Source
eNOTBLK :: Errno | Source
eNOTCONN :: Errno | Source
eNOTDIR :: Errno | Source
eNOTEMPTY :: Errno | Source
eNOTSOCK :: Errno | Source
eNOTTY :: Errno | Source
eNXIO :: Errno | Source
eOPNOTSUPP :: Errno | Source
ePERM :: Errno | Source
ePFNOSUPPORT :: Errno | Source
ePIPE :: Errno | Source
ePROCLIM :: Errno | Source
ePROCUNAVAIL :: Errno | Source
ePROGMISMATCH :: Errno | Source
ePROGUNAVAIL :: Errno | Source
ePROTO :: Errno | Source
ePROTONOSUPPORT :: Errno | Source
ePROTOTYPE :: Errno | Source
eRANGE :: Errno | Source
eREMCHG :: Errno | Source
eREMOTE :: Errno | Source
eROFS :: Errno | Source
eRPCMISMATCH :: Errno | Source
eRREMOTE :: Errno | Source
eSHUTDOWN :: Errno | Source
eSOCKTNOSUPPORT :: Errno | Source
eSPIPE :: Errno | Source
eSRCH :: Errno | Source
eSRMNT :: Errno | Source
eSTALE :: Errno | Source
eTIME :: Errno | Source
eTIMEDOUT :: Errno | Source
eTOOMANYREFS :: Errno | Source
eTXTBSY :: Errno | Source
eUSERS :: Errno | Source
eWOULDBLOCK :: Errno | Source
eXDEV :: 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`.
getErrno :: IO Errno | Source
Get the current value of `errno` in the current thread.
resetErrno :: IO () | Source
Reset the current thread's `errno` value to `eOK`.
errnoToIOError | Source
:: 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 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 | Source
:: String | textual 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 | Source
:: (a -> Bool) | predicate to apply to the result value of the `IO` operation
-> String | textual description of the location
-> IO a | the `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 () | 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 :: 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_ :: Num a => String -> IO a -> IO () | Source
as `throwErrnoIfMinus1`, but discards the result.
throwErrnoIfMinus1Retry :: 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_ :: 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
:: (a -> Bool) | predicate to apply to the result value of the `IO` operation
-> String | textual description of the location
-> IO a | the `IO` operation to be executed
-> IO b | action 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 () | Source
as `throwErrnoIfRetryMayBlock`, but discards the result.
throwErrnoIfMinus1RetryMayBlock :: Num a => String -> IO a -> IO b -> IO a | Source
as `throwErrnoIfMinus1Retry`, but checks for operations that would block.
throwErrnoIfMinus1RetryMayBlock_ :: 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 :: Num a => String -> FilePath -> IO a -> IO a | Source
as `throwErrnoIfMinus1`, but exceptions include the given path when appropriate.
throwErrnoPathIfMinus1_ :: Num a => String -> FilePath -> IO a -> IO () | Source
as `throwErrnoIfMinus1_`, but exceptions include the given path when appropriate.
Produced by Haddock version 0.9