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.
Ввод/вывод
Стандартные дескрипторы файлов
Открытие и закрытие файлов
data OpenFileFlags Source
Соответствуют некоторым целочисленным флагам из C's fcntl.h.
Конструкторы
| OpenFileFlags | |
defaultFileFlags :: OpenFileFlags Source
Значения по умолчанию для типа OpenFileFlags. False для каждого из append, exclusive, noctty, nonBlock и trunc.
Аргументы
| :: FilePath | |
| -> OpenMode | |
| -> Maybe FileMode | Just x => создает файл с заданными режимами, Nothing => файл должен существовать. |
| -> OpenFileFlags | |
| -> IO Fd |
Открыть и, при необходимости, создать этот файл. См. Files для информации о том, как использовать тип FileMode.
createFile :: FilePath -> FileMode -> IO Fd Source
Создать и открыть этот файл в режиме WriteOnly. Специальный случай openFd. См. Files для информации о том, как использовать тип FileMode.
Закрыть этот дескриптор файла. Может выбросить исключение, если это неверный дескриптор.
Чтение/запись данных
Программисты, использующие API fdRead и fdWrite, должны знать, что исключения EAGAIN могут возникать для неблокирующего IO!
Аргументы
| :: Fd | |
| -> ByteCount | Сколько байт читать |
| -> IO (String, ByteCount) | Прочитанные байты, сколько байт было прочитано. |
Прочитать данные из Fd и преобразовать их в String с использованием кодировки локали. Выбрасывает исключение, если это неверный дескриптор или достигнут конец файла.
fdWrite :: Fd -> String -> IO ByteCount Source
Записать String в Fd с использованием кодировки локали.
Аргументы
| :: Fd | |
| -> Ptr Word8 | Память, в которую нужно поместить данные |
| -> ByteCount | Максимальное количество байт для чтения |
| -> IO ByteCount | Количество прочитанных байт (ноль для EOF) |
Прочитать данные из Fd в память. Это точно эквивалентно функции POSIX read.
Аргументы
| :: Fd | |
| -> Ptr Word8 | Память, содержащая данные для записи |
| -> ByteCount | Максимальное количество байт для записи |
| -> IO ByteCount | Количество записанных байт |
Записать данные из памяти в Fd. Это точно эквивалентно функции POSIX write.
Поиск
fdSeek :: Fd -> SeekMode -> FileOffset -> IO FileOffset 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
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 для чтения, второй — для записи. Хотя каналы могут быть двунаправленными, такое поведение не является переносимым, и программисты должны использовать два отдельных канала для этой цели. Может выбросить исключение, если это недействительный дескриптор.
Дублирование дескрипторов файлов
Может выбросить исключение, если это недействительный дескриптор.
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