Spec-Zone.ru › Haskell 9

GHC.IO.Device

Авторское право (c) The University of Glasgow 1994-2008
Лицензия see libraries/base/LICENSE
Сопровождающий libraries@haskell.org
Стабильность internal
Переносимость non-portable
Безопасный Haskell Safe
Язык Haskell2010

Описание

Классы типов для поставщиков операций ввода-вывода.

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

class RawIO a where Исходный код

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

Методы

read :: a -> Ptr Word8 -> Word64 -> Int -> IO Int Исходный код

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

readNonBlocking :: a -> Ptr Word8 -> Word64 -> Int -> IO (Maybe Int) Исходный код

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

write :: a -> Ptr Word8 -> Word64 -> Int -> IO () Исходный код

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

writeNonBlocking :: a -> Ptr Word8 -> Word64 -> Int -> IO Int Исходный код

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

Экземпляры
Описание экземпляров
RawIO FD Исходный код

Начиная с: base-4.1.0.0

Описание экземпляра

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

Методы

read :: FD -> Ptr Word8 -> Word64 -> Int -> IO Int Исходный код

readNonBlocking :: FD -> Ptr Word8 -> Word64 -> Int -> IO (Maybe Int) Исходный код

write :: FD -> Ptr Word8 -> Word64 -> Int -> IO () Исходный код

writeNonBlocking :: FD -> Ptr Word8 -> Word64 -> Int -> IO Int Исходный код

class IODevice a where Исходный код

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

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

ready, close, devType

Методы

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

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

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

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

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

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

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

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

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

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

tell :: a -> IO Integer Исходный код

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

getSize :: a -> IO Integer Исходный код

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

setSize :: a -> Integer -> IO () Исходный код

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

setEcho :: a -> Bool -> IO () Исходный код

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

getEcho :: a -> IO Bool Исходный код

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

setRaw :: a -> Bool -> IO () Исходный код

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

devType :: a -> IO IODeviceType Исходный код

Возвращает IODeviceType, соответствующий этому устройству.

dup :: a -> IO a Исходный код

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

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

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 Исходный код

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). Стандартные библиотеки предоставляют возможность создавать Handles с помощью файловых операций Posix с файловыми дескрипторами (см. mkHandleFromFD); FD является базовым экземпляром IODevice.

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

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

Directory

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

Stream

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

RegularFile

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

RawDevice

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

Экземпляры
Описание экземпляров
Eq IODeviceType Исходный код

Начиная с: base-4.2.0.0

Описание экземпляра

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

Методы

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

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

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

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

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

AbsoluteSeek

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

RelativeSeek

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

SeekFromEnd

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

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

Начиная с: base-4.2.0.0

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

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

Методы

(==) :: SeekMode -> SeekMode -> Bool Источник

(/=) :: SeekMode -> SeekMode -> Bool Источник

Ord SeekMode Источник

Начиная с: base-4.2.0.0

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

Определён в GHC.Internal.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 Источник

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

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-IO-Device.html

Spec-Zone.ru

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