Foreign.C.Error
| Copyright | (c) The FFI task force 2001 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | ffi@haskell.org |
| Stability | временная |
| Portability | портативный |
| Safe Haskell | Надежный |
| Language | Haskell2010 |
Содержание
Описание
Поддержка маршалинга, специфичная для C: обработка кодов ошибок C "errno".
Представления Haskell значений errno
Представление Haskell для значений errno. Реализация преднамеренно открыта, чтобы пользователи могли добавлять свои собственные определения значений Errno.
Общие символы errno
Различные операционные системы и/или библиотеки C часто поддерживают разные значения errno. Этот модуль определяет общие значения, но из-за открытого определения Errno пользователи могут добавлять определения, которые не являются предопределенными.
Since: 4.7.0.0
eSOCKTNOSUPPORT :: Errno Source
Errno функции
isValidErrno :: Errno -> Bool Source
Возвращает True значение, если заданное значение Errno является допустимым в данной системе. Это означает, что Eq экземпляр Errno также зависит от системы, поскольку он определен только для допустимых значений Errno.
Получить текущее значение errno в текущей нити.
resetErrno :: IO () Source
Сбросить текущее значение errno текущей нити до eOK.
Аргументы
| :: String | местоположение, где произошла ошибка |
| -> Errno | номер ошибки |
| -> Maybe Handle | необязательная обработка, связанная с ошибкой |
| -> Maybe String | необязательное имя файла, связанное с ошибкой |
| -> IOError |
Создать IOError на основе заданного значения Errno. Необязательная информация может быть использована для повышения точности сообщений об ошибках.
Выбросить IOError , соответствующую текущему значению getErrno.
Ограничения для операций IO, которые могут завершиться ошибкой
Аргументы
| :: (a -> Bool) | предикат, применяемый к значению результата операции |
| -> String | текстовое описание местоположения |
| -> IO a | операция |
| -> IO a |
Выбросить IOError , соответствующую текущему значению getErrno , если значение результата операции IO удовлетворяет заданному предикату.
throwErrnoIf_ :: (a -> Bool) -> String -> IO a -> IO () Source
как throwErrnoIf, но результат операции IO игнорируется после обработки ошибки.
throwErrnoIfRetry :: (a -> Bool) -> String -> IO a -> IO a Source
как throwErrnoIf, но повторить операцию IO при получении кода ошибки eINTR - это соответствует стандартной циклической перепроверке прерванных системных вызовов POSIX.
throwErrnoIfRetry_ :: (a -> Bool) -> String -> IO a -> IO () Source
как throwErrnoIfRetry, но результат игнорируется.
throwErrnoIfMinus1 :: (Eq a, Num a) => String -> IO a -> IO a Source
Выбросить IOError , соответствующую текущему значению getErrno , если операция IO возвращает результат -1.
throwErrnoIfMinus1_ :: (Eq a, Num a) => String -> IO a -> IO () Source
как throwErrnoIfMinus1, но результат игнорируется.
throwErrnoIfMinus1Retry :: (Eq a, Num a) => String -> IO a -> IO a Source
Выбросить IOError , соответствующую текущему значению getErrno , если операция IO возвращает результат -1, но повторяет попытку в случае прерванной операции.
throwErrnoIfMinus1Retry_ :: (Eq a, Num a) => Строка -> IO a -> IO () Source
как throwErrnoIfMinus1, но отбрасывает результат.
throwErrnoIfNull :: Строка -> IO (Указатель a) -> IO (Указатель a) Source
Выбрасывает IOError, соответствующую текущему значению getErrno, если операция IO возвращает nullPtr.
throwErrnoIfNullRetry :: Строка -> IO (Указатель a) -> IO (Указатель a) Source
Выбрасывает IOError , соответствующую текущему значению getErrno, если операция IO возвращает nullPtr, но выполняет повторную попытку в случае прерывания операции.
throwErrnoIfRetryMayBlock Source
Аргументы
| :: (a -> Bool) | предикат, применяемый к результату операции |
| -> Строка | текстовое описание местоположения |
| -> IO a | операция |
| -> IO b | действие, выполняемое перед повторной попыткой, если немедленная повторная попытка заблокирует |
| -> IO a |
как throwErrnoIfRetry, но дополнительно, если операция возвращает код ошибки eAGAIN или eWOULDBLOCK, выполняется альтернативное действие перед повторной попыткой.
throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> Строка -> IO a -> IO b -> IO () Source
как throwErrnoIfRetryMayBlock, но отбрасывает результат.
throwErrnoIfMinus1RetryMayBlock :: (Eq a, Num a) => Строка -> IO a -> IO b -> IO a Source
как throwErrnoIfMinus1Retry, но проверяет операции, которые могут заблокировать.
throwErrnoIfMinus1RetryMayBlock_ :: (Eq a, Num a) => Строка -> IO a -> IO b -> IO () Source
как throwErrnoIfMinus1RetryMayBlock, но отбрасывает результат.
throwErrnoIfNullRetryMayBlock :: Строка -> IO (Указатель a) -> IO b -> IO (Указатель a) Source
как throwErrnoIfNullRetry, но проверяет операции, которые могут заблокировать.
throwErrnoPath :: Строка -> Путь -> IO a Source
как throwErrno, но исключения включают указанный путь при необходимости.
throwErrnoPathIf :: (a -> Bool) -> Строка -> Путь -> IO a -> IO a Source
как throwErrnoIf, но исключения включают указанный путь при необходимости.
throwErrnoPathIf_ :: (a -> Bool) -> Строка -> Путь -> IO a -> IO () Source
как throwErrnoIf_, но исключения включают указанный путь при необходимости.
throwErrnoPathIfNull :: Строка -> Путь -> IO (Указатель a) -> IO (Указатель a) Source
как throwErrnoIfNull, но исключения включают указанный путь при необходимости.
throwErrnoPathIfMinus1 :: (Eq a, Num a) => Строка -> Путь -> IO a -> IO a Source
как throwErrnoIfMinus1, но исключения включают указанный путь при необходимости.
throwErrnoPathIfMinus1_ :: (Eq a, Num a) => Строка -> Путь -> 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/7.10.3/docs/html/libraries/base-4.8.2.0/Foreign-C-Error.html