GHC.IO.Device
| Copyright | (c) The University of Glasgow 1994-2008 |
|---|---|
| License | see libraries/base/LICENSE |
| Maintainer | libraries@haskell.org |
| Stability | internal |
| Portability | non-portable |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Описание
Типы классов для поставщиков ввода-вывода.
Поставщик ввода-вывода низкого уровня, где данные представлены байтами в памяти.
Методы
read :: a -> Ptr Word8 -> Int -> IO Int Источник
Считывает до указанного количества байтов, возвращая фактическое количество прочитанных байтов. Эта функция должна блокироваться только если данные недоступны. Если доступных данных недостаточно, функция должна вернуть имеющиеся данные. Возвращаемое значение нуль указывает на достижение конца потока данных (например, конца файла).
readNonBlocking :: a -> Ptr Word8 -> Int -> IO (Может Int) Источник
Считывает до указанного количества байтов, возвращая фактическое количество прочитанных байтов или Nothing, если достигнут конец потока.
write :: a -> Ptr Word8 -> Int -> IO () Источник
Записывает указанное количество байтов.
writeNonBlocking :: a -> Ptr Word8 -> Int -> IO Int Источник
Записывает до указанного количества байтов без блокировки. Возвращает фактическое количество записанных байтов.
Примеры использования
class IODevice a where Источник
Операции ввода-вывода, необходимые для реализации Handle.
Методы
ready :: a -> Bool -> Int -> IO Bool Источник
возвращает значение, если у устройства есть данные для чтения (если write равно False) или место для записи новых данных (если write равно True). msecs указывает, сколько времени ждать в миллисекундах.
закрывает устройство. Дальнейшие операции с устройством должны генерировать исключения.
isTerminal :: a -> IO Bool Источник
возвращает значение, если устройство является терминалом или консолью.
isSeekable :: a -> IO Bool Источник
возвращает значение, если устройство поддерживает операции seek.
seek :: a -> SeekMode -> Integer -> IO () Источник
перемещает указатель на указанную позицию в данных.
tell :: a -> IO Integer Источник
возвращает текущую позицию в данных.
getSize :: a -> IO Integer Источник
возвращает размер данных.
setSize :: a -> Integer -> IO () Источник
изменяет размер данных.
setEcho :: a -> Bool -> IO () Источник
для устройств терминалов изменяет отображение введённых символов на устройстве.
getEcho :: a -> IO Bool Источник
возвращает текущий статус отображения символов.
setRaw :: a -> Bool -> IO () Источник
некоторые устройства (например, терминалы) поддерживают «сырой» режим, где введённые символы сразу доступны программе. Если доступно, эта операция включает «сырой» режим.
devType :: a -> IO IODeviceType Источник
возвращает тип IODeviceType устройства.
дублирует устройство, если это возможно. Новое устройство должно разделять указатель файла с исходным устройством (как в Unix dup).
dup2 :: a -> a -> IO a Источник
заменяет целевое устройство исходным устройством. Целевое устройство сначала закрывается, если необходимо, а затем дублируется исходное устройство (как в Unix dup2).
Примеры
| IODevice FD | С момента: base-4.1.0.0 |
Определено в GHC.IO.FD Методыready :: FD -> Bool -> Int -> IO Bool Исходный код close :: FD -> IO () Исходный код isTerminal :: FD -> IO Bool Исходный код isSeekable :: FD -> IO Bool Исходный код seek :: FD -> SeekMode -> Integer -> IO () Исходный код tell :: FD -> IO Integer Исходный код getSize :: FD -> IO Integer Исходный код setSize :: FD -> Integer -> IO () Исходный код setEcho :: FD -> Bool -> IO () Исходный код getEcho :: FD -> IO Bool Исходный код setRaw :: FD -> Bool -> IO () Исходный код devType :: FD -> IO IODeviceType Исходный код dup :: FD -> IO FD Исходный код | |
data IODeviceType Исходный код
Тип устройства, которое может быть использовано для поддержки Handle (см. также mkFileHandle). Стандартные библиотеки предоставляют создание Handle через операции с файлами Posix с дескрипторами файлов (см. mkHandleFromFD) с FD в качестве базового IODevice экземпляра.
Пользователи могут предоставить собственные экземпляры IODevice, которые должны соответствовать следующим правилам:
Конструкторы
| Directory | Стандартные библиотеки не имеют прямой поддержки для этого типа устройства, но ожидается, что реализация пользователя предоставит список имён файлов в каталоге в любом порядке, разделённых символами |
| Stream | Двунаправленный канал связи (приводит к созданию двунаправленного |
| RegularFile | Файл, который можно читать или записывать, а также, возможно, перемещаться по нему. |
| RawDevice | Устройство "сырого" (дискового) типа, которое поддерживает операции с блоками бинарного чтения и записи и может перемещаться по позициям только с определённой точностью (выровненные блоки). |
Примеры
| Eq IODeviceType | С момента: base-4.2.0.0 |
Определено в GHC.IO.Device Методы(==) :: IODeviceType -> IODeviceType -> Bool Исходный код (/=) :: IODeviceType -> IODeviceType -> Bool Исходный код | |
data SeekMode Исходный код
Режим, который определяет влияние hSeek hdl mode i.
Конструкторы
| AbsoluteSeek | позиция |
| RelativeSeek | позиция |
| SeekFromEnd | позиция |
Примеры
| Ix SeekMode | С момента: base-4.2.0.0 |
Определено в GHC.IO.Device Методыrange :: (SeekMode, SeekMode) -> [SeekMode] Исходный код index :: (SeekMode, SeekMode) -> SeekMode -> Int Исходный код unsafeIndex :: (SeekMode, SeekMode) -> SeekMode -> Int Исходный код inRange :: (SeekMode, SeekMode) -> SeekMode -> Bool Исходный код rangeSize :: (SeekMode, SeekMode) -> Int Исходный код unsafeRangeSize :: (SeekMode, SeekMode) -> Int Исходный код | |
© 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/GHC-IO-Device.html