Spec-Zone.ru › Haskell 9

Foreign.C.Error

Авторское право (c) The FFI task force 2001
Лицензия В стиле BSD (см. файл libraries/base/LICENSE)
Сопровождающий ffi@haskell.org
Стабильность предварительная
Переносимость переносимый
Безопасный Haskell Безопасный
Язык Haskell2010

Содержание

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

Описание

Поддержка маршалинга для C: обработка кодов ошибок C "errno".

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

newtype Errno Источник

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

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

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

С версии: base-2.1

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

Определён в GHC.Internal.Foreign.C.Error

Методы

(==) :: Errno -> Errno -> Bool Источник

(/=) :: Errno -> Errno -> Bool Источник

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

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

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 Источник

eNOTSUP :: Errno Источник

С версии: base-4.7.0.0

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 Источник

Errno функции

isValidErrno :: Errno -> Bool Источник

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

getErrno :: IO Errno Источник

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

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

resetErrno :: IO () Источник

Сбрасывает значение errno текущего потока в eOK.

errnoToIOError Источник

Аргументы

:: String

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

-> Errno

номер ошибки

-> Maybe Handle

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

-> Maybe String

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

-> IOError

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

throwErrno Источник

Аргументы

:: String

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

-> IO a

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

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

throwErrnoIf Источник

Аргументы

:: (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 Источник

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

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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