Spec-Zone.ru › Haskell 9

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

Содержание

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

Описание

Поддержка маршалинга, специфичная для C: обработка кодов ошибок C "errno".

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

newtype Errno Source

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

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

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

С версии: base-2.1

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

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

Методы

(==) :: Errno -> Errno -> Bool Source

(/=) :: Errno -> Errno -> Bool Source

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

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

eOK :: Errno Source

e2BIG :: Errno Source

eACCES :: Errno Source

eADDRINUSE :: Errno Source

eADDRNOTAVAIL :: Errno Source

eADV :: Errno Source

eAFNOSUPPORT :: Errno Source

eAGAIN :: Errno Source

eALREADY :: Errno Source

eBADF :: Errno Source

eBADMSG :: Errno Source

eBADRPC :: Errno Source

eBUSY :: Errno Source

eCHILD :: Errno Source

eCOMM :: Errno Source

eCONNABORTED :: Errno Source

eCONNREFUSED :: Errno Source

eCONNRESET :: Errno Source

eDEADLK :: Errno Source

eDESTADDRREQ :: Errno Source

eDIRTY :: Errno Source

eDOM :: Errno Source

eDQUOT :: Errno Source

eEXIST :: Errno Source

eFAULT :: Errno Source

eFBIG :: Errno Source

END_OF_DOCUMENT_MARKER

eFTYPE :: Errno Source

eHOSTDOWN :: Errno Source

eHOSTUNREACH :: Errno Source

eIDRM :: Errno Source

eILSEQ :: Errno Source

eINPROGRESS :: Errno Source

eINTR :: Errno Source

eINVAL :: Errno Source

eIO :: Errno Source

eISCONN :: Errno Source

eISDIR :: Errno Source

eLOOP :: Errno Source

eMFILE :: Errno Source

eMLINK :: Errno Source

eMSGSIZE :: Errno Source

eMULTIHOP :: Errno Source

eNAMETOOLONG :: Errno Source

eNETDOWN :: Errno Source

eNETRESET :: Errno Source

eNETUNREACH :: Errno Source

eNFILE :: Errno Source

eNOBUFS :: Errno Source

eNODATA :: Errno Source

eNODEV :: Errno Source

eNOENT :: Errno Source

eNOEXEC :: Errno Source

eNOLCK :: Errno Source

eNOLINK :: Errno Source

eNOMEM :: Errno Source

eNOMSG :: Errno Source

eNONET :: Errno Source

eNOPROTOOPT :: Errno Source

eNOSPC :: Errno Source

eNOSR :: Errno Source

eNOSTR :: Errno Source

eNOSYS :: Errno Source

eNOTBLK :: Errno Source

eNOTCONN :: Errno Source

eNOTDIR :: Errno Source

eNOTEMPTY :: Errno Source

eNOTSOCK :: Errno Source

eNOTSUP :: Errno Source

Since: base-4.7.0.0

eNOTTY :: Errno Source

eNXIO :: Errno Source

eOPNOTSUPP :: Errno Source

ePERM :: Errno Source

ePFNOSUPPORT :: Errno Source

ePIPE :: Errno Source

ePROCLIM :: Errno Source

ePROCUNAVAIL :: Errno Source

ePROGMISMATCH :: Errno Source

ePROGUNAVAIL :: Errno Source

ePROTO :: Errno Source

ePROTONOSUPPORT :: Errno Source

ePROTOTYPE :: Errno Source

eRANGE :: Errno Source

eREMCHG :: Errno Source

eREMOTE :: Errno Source

eROFS :: Errno Source

eRPCMISMATCH :: Errno Source

eRREMOTE :: Errno Source

eSHUTDOWN :: Errno Source

eSOCKTNOSUPPORT :: Errno Source

eSPIPE :: Errno Source

eSRCH :: Errno Source

eSRMNT :: Errno Source

eSTALE :: Errno Source

eTIME :: Errno Source

eTIMEDOUT :: Errno Source

eTOOMANYREFS :: Errno Source

eTXTBSY :: Errno Source

eUSERS :: Errno Source

eWOULDBLOCK :: Errno Source

eXDEV :: Errno Source

Функции

isValidErrno :: Errno -> Bool Source

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

getErrno :: IO Errno Source

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

В GHC среда выполнения гарантирует, что любой поток Haskell увидит "свой собственный" errno, сохраняя и восстанавливая значение при планировании потоков Haskell на OS-потоках.

resetErrno :: IO () Source

Сбросьте текущее значение потока errno до eOK.

errnoToIOError Source

Аргументы

:: String

местоположение, где произошла ошибка

-> Errno

номер ошибки

-> Maybe Handle

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

-> Maybe String

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

-> IOError

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

throwErrno Source

Аргументы

:: String

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

-> IO a

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

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

throwErrnoIf Source

Аргументы

:: (a -> Bool)

предикат, применяемый к результату значения операции IO

-> String

текстовое описание местоположения

-> IO a

операция IO, которая должна быть выполнена

-> 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)

предикат, применяемый к значению результата операции IO

-> String

текстовое описание местоположения

-> IO a

операция IO, которая должна быть выполнена

-> 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

Spec-Zone.ru

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