Foreign.C.Error
| Авторское право | (c) The FFI task force 2001 |
|---|---|
| Лицензия | В стиле BSD (см. файл libraries/base/LICENSE) |
| Сопровождающий | ffi@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимый |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Поддержка маршалинга для C: обработка кодов ошибок C "errno".
Представления значений errno в Haskell
Представление значений errno в Haskell. Реализация намеренно открыта, чтобы пользователи могли добавлять собственные определения значений Errno.
Экземпляры
Общие символы errno
В разных операционных системах и/или библиотеках C часто поддерживаются разные значения errno. Этот модуль определяет общие значения, но благодаря открытым определениям Errno пользователи могут добавлять значения, которые не заданы заранее.
eADDRNOTAVAIL :: Errno Источник
eAFNOSUPPORT :: Errno Источник
eCONNABORTED :: Errno Источник
eCONNREFUSED :: Errno Источник
eDESTADDRREQ :: Errno Источник
eHOSTUNREACH :: Errno Источник
eNAMETOOLONG :: Errno Источник
С версии: base-4.7.0.0
ePFNOSUPPORT :: Errno Источник
ePROCUNAVAIL :: Errno Источник
ePROGMISMATCH :: Errno Источник
ePROGUNAVAIL :: Errno Источник
ePROTONOSUPPORT :: Errno Источник
eRPCMISMATCH :: Errno Источник
eTOOMANYREFS :: Errno Источник
Errno функции
isValidErrno :: Errno -> Bool Источник
Возвращает True, если указанное значение Errno допустимо в системе. Это означает, что экземпляр Eq класса Errno также зависит от системы, поскольку он определён только для допустимых значений Errno.
Получает текущее значение errno в текущем потоке.
В GHC среда выполнения гарантирует, что каждый поток Haskell видит только собственное значение errno: при переключении потоков Haskell между потоками ОС это значение сохраняется и восстанавливается.
resetErrno :: IO () Источник
Сбрасывает значение errno текущего потока в eOK.
Аргументы
| :: String | место возникновения ошибки |
| -> Errno | номер ошибки |
| -> Maybe Handle | необязательный дескриптор, связанный с ошибкой |
| -> Maybe String | необязательное имя файла, связанное с ошибкой |
| -> IOError |
Создаёт IOError на основе указанного значения Errno. Дополнительные сведения можно использовать для повышения точности сообщений об ошибках.
Выбрасывает IOError, соответствующее текущему значению getErrno.
Обёртки для операций ввода-вывода, которые могут завершиться ошибкой
Аргументы
| :: (a -> Bool) | предикат, применяемый к результату операции |
| -> String | текстовое описание места возникновения ошибки |
| -> IO a | операция |
| -> 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) | предикат, применяемый к результату операции |
| -> String | текстовое описание места возникновения ошибки |
| -> IO a | операция |
| -> 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