Spec-Zone.ru › Haskell 8

Foreign.C.Error

Copyright (c) The FFI task force 2001
License BSD-style (see the file libraries/base/LICENSE)
Maintainer ffi@haskell.org
Stability provisional
Portability portable
Safe Haskell Trustworthy
Language Haskell2010

Содержание

  • Haskell представления значений errno
    • Общие символы errno
    • Функции Errno
    • Охраняемые блоки для операций IO, которые могут завершиться неудачей

Описание

Поддержка маршалинга, специфичная для C: обработка кодов ошибок C "errno".

Haskell представления значений errno

newtype Errno Source

Haskell представление для значений errno. Реализация преднамеренно открыта, чтобы позволить пользователям добавлять свои собственные определения значений Errno.

Конструкторы

Errno CInt
Экземпляры
Подробности о экземплярах
Eq Errno

Since: base-2.1

Подробности о экземпляре

Определено в Foreign.C.Error

Методы

(==) :: Errno -> Errno -> Bool Source

(/=) :: Errno -> Errno -> Bool Source

Общие символы errno

Различные операционные системы и/или библиотеки C часто поддерживают различные значения errno. Этот модуль определяет общие значения, но из-за открытого определения Errno пользователи могут добавлять определения, которые не являются предопределенными.

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

eNOTSUP :: Errno Source

Since: base-4.7.0.0

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 функции

isValidErrno :: Errno -> Bool Source

Возвращает True, если заданное Errno значение является допустимым в системе. Это подразумевает, что Eq экземпляр Errno также зависит от системы, так как он определен только для допустимых значений Errno.

getErrno :: IO Errno Source

Получить текущее значение errno в текущей нити.

В GHC среда выполнения гарантирует, что любая нить Haskell увидит только "свою" errno, сохраняя и восстанавливая значение при планировании нитей Haskell по отношению к нитям ОС.

resetErrno :: IO () Source

Сбросить текущее значение errno текущей нити на eOK.

errnoToIOError Source

Аргументы

:: String

местоположение, где произошла ошибка

-> Errno

номер ошибки

-> Maybe Handle

необязательный дескриптор файла, связанный с ошибкой

-> Maybe String

необязательное имя файла, связанное с ошибкой

-> IOError

Создать IOError на основе заданного Errno значения. Необязательная информация может использоваться для повышения точности сообщений об ошибках.

throwErrno Source

Аргументы

:: String

текстовое описание места возникновения ошибки

-> IO a

Выбросить IOError , соответствующую текущему значению getErrno.

Охранные условия для операций ввода/вывода, которые могут завершиться ошибкой

throwErrnoIf Source

Аргументы

:: (a -> Bool)

предикат, применяемый к результату значения операции IO

-> String

текстовое описание расположения

-> IO a

выполняемая операция IO

-> IO a

Выбрасывает исключение IOError, соответствующее текущему значению getErrno, если результат выполнения действия IO удовлетворяет заданному предикату.

throwErrnoIf_ :: (a -> Bool) -> String -> IO a -> IO () Источник

как throwErrnoIf, но игнорирует результат действия IO после обработки ошибок.

throwErrnoIfRetry :: (a -> Bool) -> String -> IO a -> IO a Источник

как throwErrnoIf, но повторно выполняет действие IO при получении кода ошибки eINTR - это стандартный цикл повторных попыток для прерванных вызовов системных функций POSIX.

throwErrnoIfRetry_ :: (a -> Bool) -> String -> IO a -> IO () Источник

как throwErrnoIfRetry, но игнорирует результат.

throwErrnoIfMinus1 :: (Eq a, Num a) => String -> IO a -> IO a Источник

Выбрасывает исключение IOError, соответствующее текущему значению getErrno, если действие IO возвращает результат -1

throwErrnoIfMinus1_ :: (Eq a, Num a) => String -> IO a -> IO () Источник

как throwErrnoIfMinus1, но игнорирует результат.

throwErrnoIfMinus1Retry :: (Eq a, Num a) => String -> IO a -> IO a Источник

Выбрасывает исключение IOError, соответствующее текущему значению getErrno, если действие IO возвращает результат -1, но повторяет попытку в случае прерывания операции.

throwErrnoIfMinus1Retry_ :: (Eq a, Num a) => String -> IO a -> IO () Источник

как throwErrnoIfMinus1, но игнорирует результат.

throwErrnoIfNull :: String -> IO (Ptr a) -> IO (Ptr a) Источник

Выбрасывает исключение IOError, соответствующее текущему значению getErrno, если действие IO возвращает значение nullPtr

throwErrnoIfNullRetry :: String -> IO (Ptr a) -> IO (Ptr a) Источник

Выбрасывает исключение IOError, соответствующее текущему значению getErrno, если действие IO возвращает значение nullPtr, но повторяет попытку в случае прерывания операции.

throwErrnoIfRetryMayBlock Источник

Аргументы

:: (a -> Bool)

предикат, применяемый к результату значения операции IO

-> String

текстовое описание расположения

-> IO a

выполняемая операция IO

-> IO b

действие, выполняемое перед повторной попыткой, если немедленная повторная попытка заблокирует выполнение

-> IO a

как throwErrnoIfRetry, но дополнительно, если операция возвращает код ошибки eAGAIN или eWOULDBLOCK, выполняется альтернативное действие перед повторной попыткой.

throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> String -> IO a -> IO b -> IO () Источник

как throwErrnoIfRetryMayBlock, но игнорирует результат.

throwErrnoIfMinus1RetryMayBlock :: (Eq a, Num a) => String -> IO a -> IO b -> IO a Источник

как throwErrnoIfMinus1Retry, но проверяет операции, которые могут заблокировать выполнение.

throwErrnoIfMinus1RetryMayBlock_ :: (Eq a, Num a) => String -> IO a -> IO b -> IO () Источник

как throwErrnoIfMinus1RetryMayBlock, но игнорирует результат.

throwErrnoIfNullRetryMayBlock :: String -> IO (Ptr a) -> IO b -> IO (Ptr a) Источник

как throwErrnoIfNullRetry, но проверяет операции, которые могут заблокировать выполнение.

throwErrnoPath :: String -> FilePath -> IO a Источник

как throwErrno, но исключения включают указанный путь при необходимости.

throwErrnoPathIf :: (a -> Bool) -> String -> FilePath -> IO a -> IO a Source

как throwErrnoIf, но исключения включают заданный путь при необходимости.

throwErrnoPathIf_ :: (a -> Bool) -> String -> FilePath -> IO a -> IO () Source

как throwErrnoIf_, но исключения включают заданный путь при необходимости.

throwErrnoPathIfNull :: String -> FilePath -> IO (Ptr a) -> IO (Ptr a) Source

как throwErrnoIfNull, но исключения включают заданный путь при необходимости.

throwErrnoPathIfMinus1 :: (Eq a, Num a) => String -> FilePath -> IO a -> IO a Source

как throwErrnoIfMinus1, но исключения включают заданный путь при необходимости.

throwErrnoPathIfMinus1_ :: (Eq a, Num a) => String -> FilePath -> IO a -> IO () Source

как throwErrnoIfMinus1_, но исключения включают заданный путь при необходимости.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Foreign-C-Error.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API