Spec-Zone.ru › Haskell 8

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

Описание

Типы классов для поставщиков ввода-вывода.

class RawIO a where Источник

Поставщик ввода-вывода низкого уровня, где данные представлены байтами в памяти.

Методы

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 Источник

Записывает до указанного количества байтов без блокировки. Возвращает фактическое количество записанных байтов.

Примеры использования
Подробности примеров
RawIO FD

Since: base-4.1.0.0

Подробности примера

Определено в GHC.IO.FD

Методы

read :: FD -> Ptr Word8 -> Int -> IO Int Источник

readNonBlocking :: FD -> Ptr Word8 -> Int -> IO (Может Int) Источник

write :: FD -> Ptr Word8 -> Int -> IO () Источник

writeNonBlocking :: FD -> Ptr Word8 -> Int -> IO Int Источник

class IODevice a where Источник

Операции ввода-вывода, необходимые для реализации Handle.

Минимальное полное определение

ready, close, devType

Методы

ready :: a -> Bool -> Int -> IO Bool Источник

возвращает значение, если у устройства есть данные для чтения (если write равно False) или место для записи новых данных (если write равно True). msecs указывает, сколько времени ждать в миллисекундах.

close :: a -> IO () Источник

закрывает устройство. Дальнейшие операции с устройством должны генерировать исключения.

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 устройства.

dup :: a -> IO a Источник

дублирует устройство, если это возможно. Новое устройство должно разделять указатель файла с исходным устройством (как в 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 Исходный код

dup2 :: FD -> FD -> IO FD Исходный код

data IODeviceType Исходный код

Тип устройства, которое может быть использовано для поддержки Handle (см. также mkFileHandle). Стандартные библиотеки предоставляют создание Handle через операции с файлами Posix с дескрипторами файлов (см. mkHandleFromFD) с FD в качестве базового IODevice экземпляра.

Пользователи могут предоставить собственные экземпляры IODevice, которые должны соответствовать следующим правилам:

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

Directory

Стандартные библиотеки не имеют прямой поддержки для этого типа устройства, но ожидается, что реализация пользователя предоставит список имён файлов в каталоге в любом порядке, разделённых символами '\0', исключая имена "." и "..". См. также getDirectoryContents. Операции поиска не поддерживаются для каталогов (кроме нулевой позиции).

Stream

Двунаправленный канал связи (приводит к созданию двунаправленного Handle). Стандартные библиотеки используют этот тип устройства при создании Handle для открытых сокетов.

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

позиция hdl устанавливается на i.

RelativeSeek

позиция hdl устанавливается на смещение i от текущей позиции.

SeekFromEnd

позиция hdl устанавливается на смещение i от конца файла.

Примеры
Подробности экземпляров
Enum SeekMode

С момента выпуска: base-4.2.0.0

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

Определено в GHC.IO.Device

Методы

succ :: SeekMode -> SeekMode Исходный код

pred :: SeekMode -> SeekMode Исходный код

toEnum :: Int -> SeekMode Исходный код

fromEnum :: SeekMode -> Int Исходный код

enumFrom :: SeekMode -> [SeekMode] Исходный код

enumFromThen :: SeekMode -> SeekMode -> [SeekMode] Исходный код

enumFromTo :: SeekMode -> SeekMode -> [SeekMode] Исходный код

enumFromThenTo :: SeekMode -> SeekMode -> SeekMode -> [SeekMode] Исходный код

Eq SeekMode

С момента выпуска: base-4.2.0.0

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

Определено в GHC.IO.Device

Методы

(==) :: SeekMode -> SeekMode -> Bool Исходный код

(/=) :: SeekMode -> SeekMode -> Bool Исходный код

Ord SeekMode

С момента выпуска: base-4.2.0.0

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

Определено в GHC.IO.Device

Методы

compare :: SeekMode -> SeekMode -> Ordering Исходный код

(<) :: SeekMode -> SeekMode -> Bool Исходный код

(<=) :: SeekMode -> SeekMode -> Bool Исходный код

(>) :: SeekMode -> SeekMode -> Bool Исходный код

(>=) :: SeekMode -> SeekMode -> Bool Исходный код

max :: SeekMode -> SeekMode -> SeekMode Исходный код

min :: SeekMode -> SeekMode -> SeekMode Исходный код

Read SeekMode

С момента выпуска: base-4.2.0.0

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

Определено в GHC.IO.Device

Методы

readsPrec :: Int -> ReadS SeekMode Исходный код

readList :: ReadS [SeekMode] Исходный код

readPrec :: ReadPrec SeekMode Исходный код

readListPrec :: ReadPrec [SeekMode] Исходный код

Show SeekMode

С момента выпуска: base-4.2.0.0

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

Определено в GHC.IO.Device

Методы

showsPrec :: Int -> SeekMode -> ShowS Исходный код

show :: SeekMode -> String Исходный код

showList :: [SeekMode] -> ShowS Исходный код

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

Spec-Zone.ru

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