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 | Safe |
| 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
Функции
isValidErrno :: Errno -> Bool Source
Возвращает значение True, если заданное значение Errno является допустимым в данной системе. Это подразумевает, что экземпляр Errno также зависит от системы, так как он определён только для допустимых значений Errno.
Получить текущее значение errno в текущем потоке.
В GHC среда выполнения гарантирует, что любой поток Haskell увидит "свой собственный" errno, сохраняя и восстанавливая значение при планировании потоков Haskell на OS-потоках.
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) => String -> IO a -> IO () Source
как throwErrnoIfMinus1, но отбрасывает результат.
throwErrnoIfNull :: String -> IO (Ptr a) -> IO (Ptr a) Source
Выбросить IOError соответствующую текущему значению getErrno если действие IO возвращает nullPtr.
throwErrnoIfNullRetry :: String -> IO (Ptr a) -> IO (Ptr a) Source
Выбросить IOError соответствующую текущему значению getErrno если действие IO возвращает nullPtr, но повторить в случае прерванной операции.
throwErrnoIfRetryMayBlock Source
Аргументы
| :: (a -> Bool) | предикат, применяемый к значению результата операции |
| -> String | текстовое описание местоположения |
| -> IO a | операция |
| -> IO b | действие, выполняемое перед повторным выполнением, если непосредственное повторение заблокирует |
| -> IO a |
как throwErrnoIfRetry, но дополнительно, если операция возвращает код ошибки eAGAIN или eWOULDBLOCK, выполняется альтернативное действие перед повторным выполнением.
throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> String -> IO a -> IO b -> IO () Source
как throwErrnoIfRetryMayBlock, но отбрасывает результат.
throwErrnoIfMinus1RetryMayBlock :: (Eq a, Num a) => String -> IO a -> IO b -> IO a Source
как throwErrnoIfMinus1Retry, но проверяет операции, которые могут заблокировать.
throwErrnoIfMinus1RetryMayBlock_ :: (Eq a, Num a) => String -> IO a -> IO b -> IO () Source
как throwErrnoIfMinus1RetryMayBlock, но отбрасывает результат.
throwErrnoIfNullRetryMayBlock :: String -> IO (Ptr a) -> IO b -> IO (Ptr a) Source
как throwErrnoIfNullRetry, но проверяет операции, которые могут заблокировать.
throwErrnoPath :: String -> FilePath -> IO a Source
как 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/9.12.1/docs/libraries/base-4.21.0.0-8e62/Foreign-C-Error.html