Spec-Zone.ru › Haskell 9

GHC.IO.Device

Авторские права (c) Университет Глазго 1994-2008
Лицензия см. libraries/base/LICENSE
Поддерживающий libraries@haskell.org
Стабильность внутренняя
Переносимость непереносимая
Safe Haskell Безопасный
Язык Haskell2010

Описание

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

API данного модуля нестабилен и не предназначен для использования широкой публикой. Если вам абсолютно необходимо зависеть от него, убедитесь, что вы используете жёсткую верхнюю границу, например, base < 4.X, а не base < 5, так как интерфейс может быстро меняться без предупреждения.

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

Поставщик ввода-вывода низкого уровня, где данные представляют собой байты в памяти. Смещения Word64 в настоящее время не имеют никакого эффекта на системах POSIX или консолях, где предполагается, что неявное поведение C-runtime перемещает указатель файла при каждом чтении/записи без необходимости явного поиска.

Методы

read :: a -> Указатель Word8 -> Word64 -> Int -> IO Int Источник

Читает до указанного количества байтов, начиная с указанного смещения, возвращая количество фактически прочитанных байтов. Эта функция должна блокироваться только в том случае, если нет доступных данных. Если доступных данных недостаточно, функция должна просто вернуть доступные данные. Значение 0 указывает на достижение конца потока данных (например, конца файла).

readNonBlocking :: a -> Указатель Word8 -> Word64 -> Int -> IO (Может быть Int) Источник

Читает до указанного количества байтов, начиная с указанного смещения, возвращая количество фактически прочитанных байтов или Nothing, если достигнут конец потока.

write :: a -> Указатель Word8 -> Word64 -> Int -> IO () Источник

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

writeNonBlocking :: a -> Указатель Word8 -> Word64 -> Int -> IO Int Источник

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

Примеры реализации
Подробности примеров
RawIO FD Источник

С версии: base-4.1.0.0

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

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

Методы

read :: FD -> Указатель Word8 -> Word64 -> Int -> IO Int Источник

readNonBlocking :: FD -> Указатель Word8 -> Word64 -> Int -> IO (Может быть Int) Источник

write :: FD -> Указатель Word8 -> Word64 -> Int -> IO () Источник

writeNonBlocking :: FD -> Указатель Word8 -> Word64 -> Int -> IO Int Источник

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

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

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

ready, close, devType

Методы

ready :: a -> Bool -> Int -> IO Bool Source

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

close :: a -> IO () Source

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

isTerminal :: a -> IO Bool Source

возвращает True, если устройство является терминалом или консолью.

isSeekable :: a -> IO Bool Source

возвращает True, если устройство поддерживает операции seek.

seek :: a -> SeekMode -> Integer -> IO Integer Source

перемещает указатель на указанную позицию в данных.

tell :: a -> IO Integer Source

возвращает текущую позицию в данных.

getSize :: a -> IO Integer Source

возвращает размер данных.

setSize :: a -> Integer -> IO () Source

изменяет размер данных.

setEcho :: a -> Bool -> IO () Source

для устройств-терминалов, изменяет, будут ли символы эхо-отражаться на устройстве.

getEcho :: a -> IO Bool Source

возвращает текущий статус эхо-отражения.

setRaw :: a -> Bool -> IO () Source

некоторые устройства (например, терминалы) поддерживают «сырой» режим, в котором введенные символы сразу доступны программе. Если поддерживается, эта операция включает сырой режим.

devType :: a -> IO IODeviceType Source

возвращает тип IODeviceType, соответствующий данному устройству.

dup :: a -> IO a Source

дублирует устройство, если это возможно. Ожидается, что новое устройство будет совместно использовать указатель файла с исходным устройством (как в Unix dup).

dup2 :: a -> a -> IO a Source

dup2 source target заменяет целевое устройство исходным. Целевое устройство сначала закрывается, если необходимо, а затем становится дубликатом первого устройства (как в Unix dup2).

Примеры
Подробности примеров
IODevice FD Исходный код

С тех пор как: base-4.1.0.0

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

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

Методы

ready :: FD -> Bool -> Int -> IO Bool Исходный код

close :: FD -> IO () Исходный код

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

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

seek :: FD -> SeekMode -> Integer -> IO Integer Исходный код

...

data ТипУстройстваIO Исходный код

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

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

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

Папка

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

Поток

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

ОбычныйФайл

Файл, который можно читать или писать, а также может быть позиционируемым.

УстройствоБлоков

«Сырое» (дисковое) устройство, которое поддерживает операции чтения и записи блоков в двоичном формате и может быть позиционируемым только до определённой гранулярности (выровненной по блокам).

Примеры
Подробности примеров
Eq ТипУстройстваIO Исходный код

С тех пор как: base-4.2.0.0

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

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

Методы

(==) :: ТипУстройстваIO -> ТипУстройстваIO -> Bool Исходный код

(/=) :: ТипУстройстваIO -> ТипУстройстваIO -> Bool Исходный код

data РежимПозиционирования Исходный код

Режим, определяющий эффект hSeek hdl mode i.

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

АбсолютноеПозиционирование

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

ОтносительноеПозиционирование

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

ПозиционированиеОтКонца

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

Примеры
Подробности примеров
Enum SeekMode Исходный код

С версии: base-4.2.0.0

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

Определено в GHC.Internal.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] Исходный код

Ix SeekMode Исходный код

С версии: base-4.2.0.0

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

Определено в GHC.Internal.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 Исходный код

Read SeekMode Исходный код

С версии: base-4.2.0.0

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

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

Методы

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

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

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

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

Show SeekMode Исходный код

С версии: base-4.2.0.0

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

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

Методы

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

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

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

Eq SeekMode Source

С момента: base-4.2.0.0

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

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

Методы

== :: SeekMode -> SeekMode -> Bool Source

/= :: SeekMode -> SeekMode -> Bool Source

Ord SeekMode Source

С момента: base-4.2.0.0

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

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

Методы

compare :: SeekMode -> SeekMode -> Ordering Source

< :: SeekMode -> SeekMode -> Bool Source

<= :: SeekMode -> SeekMode -> Bool Source

> :: SeekMode -> SeekMode -> Bool Source

>= :: SeekMode -> SeekMode -> Bool Source

max :: SeekMode -> SeekMode -> SeekMode Source

min :: SeekMode -> SeekMode -> SeekMode Source

© 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/GHC-IO-Device.html

Spec-Zone.ru

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