GHC.IO.Handle.FD
| Авторские права | (c) Университет Глазго 1994-2008 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддерживающий | libraries@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая |
| Безопасный Haskell | Достоверный |
| Язык | Haskell2010 |
Описание
Операции с файловыми дескрипторами (FD)
Обработчик, управляющий вводом из стандартного канала ввода программы Haskell.
Обработчик, управляющий выводом в стандартный канал вывода программы Haskell.
Обработчик, управляющий выводом в стандартный канал ошибок программы Haskell.
openFile :: FilePath -> IOMode -> IO Handle Исходный код
Вычисление openFile file mode выделяет и возвращает новый открытый обработчик для управления файлом file. Он управляет вводом, если mode является ReadMode, выводом, если mode является WriteMode или AppendMode, и вводом/выводом, если режим ReadWriteMode.
Если файл не существует и открыт для вывода, он должен быть создан как новый файл. Если mode равно WriteMode и файл уже существует, он должен быть усечен до нулевой длины. Некоторые операционные системы удаляют пустые файлы, поэтому нет гарантии, что файл будет существовать после openFile с mode WriteMode до тех пор, пока он не будет успешно записан. Обработчик позиционируется в конце файла, если mode является AppendMode, и в начале в противном случае (в этом случае его внутренняя позиция равна 0). Начальный режим буфера зависит от реализации.
Эта операция может завершиться ошибкой:
-
isAlreadyInUseErrorесли файл уже открыт и не может быть повторно открыт; -
isDoesNotExistErrorесли файл не существует или (в системах POSIX) это FIFO без читателя иWriteModeбыл запрошен; или -
isPermissionErrorесли у пользователя нет разрешения на открытие файла.
Примечание: если вы работаете с файлами, содержащими двоичные данные, вам следует использовать openBinaryFile.
openBinaryFile :: FilePath -> IOMode -> IO Handle Исходный код
Аналогично openFile, но открывает файл в двоичном режиме. В Windows чтение файла в текстовом режиме (по умолчанию) переводит CRLF в LF, а запись переводит LF в CRLF. Это обычно то, что нужно для текстовых файлов. В двоичных файлах этого делать не нужно; также, как обычно в системах Microsoft, текстовый режим рассматривает символ управления Z как EOF. Двоичный режим отключает все специальное обращение с символами конца строки и конца файла. (См. также hSetBinaryMode.)
openFileBlocking :: FilePath -> IOMode -> IO Handle Исходный код
Аналогично openFile, но открывает файл в обычном блокирующем режиме. Это может быть полезно для открытия FIFO для записи: если мы откроем его в режиме без блокировки, открытие завершится ошибкой, если нет читателей, а блокирующее открытие будет ждать появления читателя.
С версии: base-4.4.0.0
mkHandleFromFD :: FD -> IODeviceType -> FilePath -> IOMode -> Bool -> Maybe TextEncoding -> IO Handle Исходный код
fdToHandle :: FD -> IO Handle Исходный код
Преобразование существующего файлового дескриптора в Handle. Используется различными внешними библиотеками для создания Handles.
Создаёт двоичный Handle. Это по историческим причинам; скорее всего, это должен быть текстовый Handle с кодировкой по умолчанию и переводом символов новой строки.
fdToHandle' :: CInt -> Maybe IODeviceType -> Bool -> FilePath -> IOMode -> Bool -> IO Handle Исходный код
Старый API, сохранённый для предотвращения разрыва совместимости с клиентами
handleToFd :: Handle -> IO FD Исходный код
Преобразование существующего Handle в файловый дескриптор. Эта функция вызывает IOError, если Handle не ссылается на файловый дескриптор.
© 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-Handle-FD.html