Spec-Zone.ru › Haskell 7

System.Posix.IO

Copyright (c) The University of Glasgow 2002
License BSD-style (see the file libraries/base/LICENSE)
Maintainer libraries@haskell.org
Stability provisional
Portability non-portable (requires POSIX)
Safe Haskell Safe
Language Haskell2010

Содержание

  • Ввод/вывод
    • Стандартные дескрипторы файлов
    • Открытие и закрытие файлов
    • Чтение/запись данных
    • Поиск
    • Параметры файлов
    • Блокировка
    • Канлы
    • Дублирование дескрипторов файлов
    • Преобразование дескрипторов файлов в/из дескрипторов

Описание

Поддержка POSIX IO. Эти типы и функции соответствуют функциям unix open(2), close(2) и т.д. Для более переносимых функций, которые больше похожи на fopen(3) и друзей из stdio.h, см. System.IO.

Ввод/вывод

Стандартные дескрипторы файлов

stdInput :: Fd Source

stdOutput :: Fd Source

stdError :: Fd Source

Открытие и закрытие файлов

data OpenMode Source

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

ReadOnly
WriteOnly
ReadWrite

data OpenFileFlags Source

Соответствуют некоторым целочисленным флагам из C's fcntl.h.

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

OpenFileFlags

Поля

append :: Bool

O_APPEND

exclusive :: Bool

O_EXCL

noctty :: Bool

O_NOCTTY

nonBlock :: Bool

O_NONBLOCK

trunc :: Bool

O_TRUNC

defaultFileFlags :: OpenFileFlags Source

Значения по умолчанию для типа OpenFileFlags. False для каждого из append, exclusive, noctty, nonBlock и trunc.

openFd Source

Аргументы

:: FilePath
-> OpenMode
-> Maybe FileMode

Just x => создает файл с заданными режимами, Nothing => файл должен существовать.

-> OpenFileFlags
-> IO Fd

Открыть и, при необходимости, создать этот файл. См. Files для информации о том, как использовать тип FileMode.

createFile :: FilePath -> FileMode -> IO Fd Source

Создать и открыть этот файл в режиме WriteOnly. Специальный случай openFd. См. Files для информации о том, как использовать тип FileMode.

closeFd :: Fd -> IO () Source

Закрыть этот дескриптор файла. Может выбросить исключение, если это неверный дескриптор.

Чтение/запись данных

Программисты, использующие API fdRead и fdWrite, должны знать, что исключения EAGAIN могут возникать для неблокирующего IO!

fdRead Source

Аргументы

:: Fd
-> ByteCount

Сколько байт читать

-> IO (String, ByteCount)

Прочитанные байты, сколько байт было прочитано.

Прочитать данные из Fd и преобразовать их в String с использованием кодировки локали. Выбрасывает исключение, если это неверный дескриптор или достигнут конец файла.

fdWrite :: Fd -> String -> IO ByteCount Source

Записать String в Fd с использованием кодировки локали.

fdReadBuf Source

Аргументы

:: Fd
-> Ptr Word8

Память, в которую нужно поместить данные

-> ByteCount

Максимальное количество байт для чтения

-> IO ByteCount

Количество прочитанных байт (ноль для EOF)

Прочитать данные из Fd в память. Это точно эквивалентно функции POSIX read.

fdWriteBuf Source

Аргументы

:: Fd
-> Ptr Word8

Память, содержащая данные для записи

-> ByteCount

Максимальное количество байт для записи

-> IO ByteCount

Количество записанных байт

Записать данные из памяти в Fd. Это точно эквивалентно функции POSIX write.

Поиск

fdSeek :: Fd -> SeekMode -> FileOffset -> IO FileOffset Source

Может выбросить исключение, если это неверный дескриптор.

Параметры файлов

data FdOption Source

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

AppendOnWrite

O_APPEND

CloseOnExec

FD_CLOEXEC

NonBlockingRead

O_NONBLOCK

SynchronousWrites

O_SYNC

queryFdOption :: Fd -> FdOption -> IO Bool Source

Может выбросить исключение, если это недействительный дескриптор.

setFdOption :: Fd -> FdOption -> Bool -> IO () Source

Может выбросить исключение, если это недействительный дескриптор.

Блокировка

type FileLock = (LockRequest, SeekMode, FileOffset, FileOffset) Source

data LockRequest Source

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

ReadLock
WriteLock
Unlock

getLock :: Fd -> FileLock -> IO (Maybe (ProcessID, FileLock)) Source

Может выбросить исключение, если это недействительный дескриптор.

setLock :: Fd -> FileLock -> IO () Source

Может выбросить исключение, если это недействительный дескриптор.

waitToSetLock :: Fd -> FileLock -> IO () Source

Может выбросить исключение, если это недействительный дескриптор.

Каналы

createPipe :: IO (Fd, Fd) Source

Функция createPipe создаёт пару соединённых дескрипторов файлов. Первый компонент — fd для чтения, второй — для записи. Хотя каналы могут быть двунаправленными, такое поведение не является переносимым, и программисты должны использовать два отдельных канала для этой цели. Может выбросить исключение, если это недействительный дескриптор.

Дублирование дескрипторов файлов

dup :: Fd -> IO Fd Source

Может выбросить исключение, если это недействительный дескриптор.

dupTo :: Fd -> Fd -> IO Fd Source

Может выбросить исключение, если это недействительный дескриптор.

Преобразование дескрипторов файлов в/из дескрипторов ручек

handleToFd :: Handle -> IO Fd Source

Извлекает Fd из Handle. Эта функция имеет побочный эффект закрытия Handle и сброса его буфера записи, если необходимо.

fdToHandle :: Fd -> IO Handle Source

Преобразует Fd в Handle, который можно использовать с стандартной библиотекой Haskell IO (см. System.IO).

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/unix-2.7.1.0/System-Posix-IO.html

Spec-Zone.ru

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