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 |
Описание
Поддержка маршалинга, специфичная для C: обработка кодов ошибок C "errno".
Haskell представления значений errno
Haskell представление для значений errno. Реализация преднамеренно открыта, чтобы позволить пользователям добавлять свои собственные определения значений Errno.
Экземпляры
Общие символы errno
Различные операционные системы и/или библиотеки C часто поддерживают различные значения errno. Этот модуль определяет общие значения, но из-за открытого определения Errno пользователи могут добавлять определения, которые не являются предопределенными.
Since: base-4.7.0.0
ePROTONOSUPPORT :: Errno Source
eSOCKTNOSUPPORT :: Errno Source
Errno функции
isValidErrno :: Errno -> Bool Source
Возвращает True, если заданное Errno значение является допустимым в системе. Это подразумевает, что Eq экземпляр Errno также зависит от системы, так как он определен только для допустимых значений Errno.
Получить текущее значение errno в текущей нити.
В GHC среда выполнения гарантирует, что любая нить Haskell увидит только "свою" errno, сохраняя и восстанавливая значение при планировании нитей Haskell по отношению к нитям ОС.
resetErrno :: IO () Source
Сбросить текущее значение 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 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