Spec-Zone.ru › Haskell 7

Система.Posix.Файлы

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 для управления и запроса файловой системы. Имена базовых функций POSIX указываются, когда это возможно. Более полная документация по функциям POSIX вместе с более подробным описанием различных условий ошибок обычно доступна на страницах руководства системы или по адресу http://www.unix.org/version3/online.html (требуется бесплатная регистрация).

Когда функция, вызывающая базовую функцию POSIX, завершается с ошибкой, код errno преобразуется в IOError с помощью errnoToIOError. Для получения списка кодов errno, которые могут быть сгенерированы, обратитесь к документации POSIX для базовой функции.

Режимы файлов

unionFileModes :: FileMode -> FileMode -> FileMode Source

Объединяет два режима файла в один, который содержит режимы, присутствующие в любом из них.

intersectFileModes :: FileMode -> FileMode -> FileMode Source

Объединяет два режима файла в один, который содержит только режимы, присутствующие в обоих.

nullFileMode :: FileMode Source

Нет прав доступа.

ownerReadMode :: FileMode Source

Владелец имеет право на чтение.

ownerWriteMode :: FileMode Source

Владелец имеет право на запись.

ownerExecuteMode :: FileMode Source

Владелец имеет право на выполнение.

ownerModes :: FileMode Source

Владелец имеет права на чтение, запись и выполнение.

groupReadMode :: FileMode Source

Группа имеет право на чтение.

groupWriteMode :: FileMode Source

Группа имеет право на запись.

groupExecuteMode :: FileMode Source

Группа имеет право на выполнение.

groupModes :: FileMode Source

Группа имеет права на чтение, запись и выполнение.

otherReadMode :: FileMode Source

Другие имеют право на чтение.

otherWriteMode :: FileMode Source

Другие имеют право на запись.

otherExecuteMode :: FileMode Source

Другие имеют право на выполнение.

otherModes :: FileMode Source

Другие имеют права на чтение, запись и выполнение.

setUserIDMode :: FileMode Source

Установить идентификатор пользователя при выполнении.

setGroupIDMode :: FileMode Source

Установить идентификатор группы при выполнении.

stdFileMode :: FileMode Source

Владелец, группа и другие имеют права на чтение и запись.

accessModes :: FileMode Source

Владелец, группа и другие имеют права на чтение, запись и выполнение.

fileTypeModes :: FileMode Source

blockSpecialMode :: FileMode Source

characterSpecialMode :: FileMode Source

namedPipeMode :: FileMode Source

regularFileMode :: FileMode Source

directoryMode :: FileMode Source

symbolicLinkMode :: FileMode Source

socketMode :: FileMode Source

Установка режимов файлов

setFileMode :: FilePath -> FileMode -> IO () Source

setFileMode path mode изменяет разрешения файла, указанного path, на mode. Эта операция может завершиться ошибкой throwErrnoPathIfMinus1_, если path не существует или если эффективная идентификатор пользователя текущего процесса не совпадает с идентификатором владельца файла.

Примечание: вызывается chmod.

setFdMode :: Fd -> FileMode -> IO () Исходный код

setFdMode fd mode действует как setFileMode, но использует дескриптор файла fd вместо FilePath.

Примечание: вызывается fchmod.

setFileCreationMask :: FileMode -> IO FileMode Исходный код

setFileCreationMask mode устанавливает маску создания режима файла на mode. Режимы, установленные этой операцией, вычитаются из файлов и каталогов при их создании. Предыдущая маска создания режима файла возвращается.

Примечание: вызывается umask.

Проверка существования и разрешений файла

fileAccess :: FilePath -> Bool -> Bool -> Bool -> IO Bool Исходный код

fileAccess name read write exec проверяет, может ли файл (или другой объект файловой системы) name быть доступен для чтения, записи и/или выполнения. Чтобы проверить разрешение набора, соответствующий аргумент необходимо установить на True.

Примечание: вызывается access.

fileExist :: FilePath -> IO Bool Исходный код

Проверяет существование файла.

Примечание: вызывается access.

Статус файла

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

POSIX определяет операции для получения информации, такой как владелец, разрешения, размер и временные метки доступа к файлу. Эта информация представлена типом FileStatus.

Примечание: см. chmod.

Получение статуса файла

getFileStatus :: FilePath -> IO FileStatus Исходный код

getFileStatus path вызывает получение информации о FileStatus (идентификатор пользователя, размер, временные метки доступа и т. д.) для файла path.

Примечание: вызывается stat.

getFdStatus :: Fd -> IO FileStatus Исходный код

getFdStatus fd действует как getFileStatus, но использует дескриптор файла fd.

Примечание: вызывается fstat.

getSymbolicLinkStatus :: FilePath -> IO FileStatus Исходный код

Действует как getFileStatus, за исключением случаев, когда FilePath ссылается на символическую ссылку. В этом случае возвращается информация о символической ссылке, а не о файле, на который она указывает.

Примечание: вызывается lstat.

Запрос статуса файла

deviceID :: FileStatus -> DeviceID Исходный код

Идентификатор устройства, на котором находится этот файл.

fileID :: FileStatus -> FileID Исходный код

Номер индексного узла.

fileMode :: FileStatus -> FileMode Исходный код

Режим файла (например, разрешения).

linkCount :: FileStatus -> LinkCount Исходный код

Количество жёстких ссылок на этот файл.

fileOwner :: FileStatus -> UserID Исходный код

Идентификатор владельца.

fileGroup :: FileStatus -> GroupID Исходный код

Идентификатор группы.

specialDeviceID :: FileStatus -> DeviceID Исходный код

Описывает устройство, которое представляет этот файл.

fileSize :: FileStatus -> FileOffset Исходный код

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

accessTime :: FileStatus -> EpochTime Исходный код

Время последнего доступа.

modificationTime :: FileStatus -> EpochTime Исходный код

Время последнего изменения.

statusChangeTime :: FileStatus -> EpochTime Исходный код

Время последнего изменения статуса (т. е. владельца, группы, количества ссылок, режима и т. д.).

accessTimeHiRes :: FileStatus -> POSIXTime Исходный код

Время последнего доступа с разрешением до долей секунды.

modificationTimeHiRes :: FileStatus -> POSIXTime Исходный код

Время последнего изменения с разрешением до долей секунды.

statusChangeTimeHiRes :: FileStatus -> POSIXTime Исходный код

Время последнего изменения статуса (например, владельца, группы, количества ссылок, режима и т. д.) с разрешением до долей секунды.

isBlockDevice :: FileStatus -> Bool Исходный код

Проверяет, является ли этот файл блочным устройством.

isCharacterDevice :: FileStatus -> Bool Source

Проверяет, является ли этот файл устройством символьного типа.

isNamedPipe :: FileStatus -> Bool Source

Проверяет, является ли этот файл устройством именованной трубы.

isRegularFile :: FileStatus -> Bool Source

Проверяет, является ли этот файл обычным файлом.

isDirectory :: FileStatus -> Bool Source

Проверяет, является ли этот файл каталогом.

isSymbolicLink :: FileStatus -> Bool Source

Проверяет, является ли этот файл символической ссылкой.

isSocket :: FileStatus -> Bool Source

Проверяет, является ли этот файл сокетом.

Создание

createNamedPipe :: FilePath -> FileMode -> IO () Source

createNamedPipe fifo mode создаёт новую именованную трубу fifo, с правами доступа, основанными на mode. Может завершиться ошибкой throwErrnoPathIfMinus1_ при наличии файла с именем name или если у текущего процесса недостаточно прав для создания трубы.

Примечание: вызывает mkfifo.

createDevice :: FilePath -> FileMode -> DeviceID -> IO () Source

createDevice path mode dev создаёт либо обычный, либо специальный файл, в зависимости от значения mode (и dev). mode обычно будет либо blockSpecialMode, либо characterSpecialMode. Может завершиться ошибкой throwErrnoPathIfMinus1_ при наличии файла с именем name или если у текущего процесса недостаточно прав для создания файла.

Примечание: вызывает mknod.

Жёсткие ссылки

createLink :: FilePath -> FilePath -> IO () Source

createLink old new создаёт новый путь new, связанный с существующим файлом old.

Примечание: вызывает link.

removeLink :: FilePath -> IO () Source

removeLink path удаляет ссылку с именем path.

Примечание: вызывает unlink.

Символические ссылки

createSymbolicLink :: FilePath -> FilePath -> IO () Source

createSymbolicLink file1 file2 создаёт символическую ссылку с именем file2, указывающую на файл file1.

Символические ссылки интерпретируются во время выполнения так, как если бы содержимое ссылки было подставлено в путь для поиска файла или каталога.

Примечание: вызывает symlink.

readSymbolicLink :: FilePath -> IO FilePath Source

Считывает FilePath, на который указывает символическая ссылка, и возвращает её.

Примечание: вызывает readlink.

Переименование файлов

rename :: FilePath -> FilePath -> IO () Source

rename old new переименовывает файл или каталог из old в new.

Примечание: вызывает rename.

Изменение владельца файла

setOwnerAndGroup :: FilePath -> UserID -> GroupID -> IO () Source

setOwnerAndGroup path uid gid изменяет владельца и группу path на uid и gid соответственно.

Если uid или gid задано как -1, то этот идентификатор не изменяется.

Примечание: вызывает chown.

setFdOwnerAndGroup :: Fd -> UserID -> GroupID -> IO () Source

Действует как setOwnerAndGroup но использует дескриптор файла вместо FilePath.

Примечание: вызывает fchown.

setSymbolicLinkOwnerAndGroup :: FilePath -> UserID -> GroupID -> IO () Source

Действует как setOwnerAndGroup но не следует за символическими ссылками (и, следовательно, изменяет права доступа самой ссылки).

Примечание: вызывает lchown.

Изменение временных меток файлов

setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO () Source

setFileTimes path atime mtime устанавливает временные метки доступа и изменения для файла path на atime и mtime соответственно.

Примечание: вызывает utime.

setFileTimesHiRes :: FilePath -> POSIXTime -> POSIXTime -> IO () Source

Как setFileTimes но временные метки могут иметь разрешение до долей секунды.

Примечание: вызывает utimensat или utimes.

Since: 2.7.0.0

setFdTimesHiRes :: Fd -> POSIXTime -> POSIXTime -> IO () Source

Как setFileTimesHiRes но использует дескриптор файла вместо пути. Эта операция не поддерживается на всех платформах. На этих платформах эта функция вызовет исключение.

Примечание: вызывает futimens или futimes.

Since: 2.7.0.0

setSymbolicLinkTimesHiRes :: FilePath -> POSIXTime -> POSIXTime -> IO () Source

Подобно setFileTimesHiRes, но не следует символьных ссылок. Данная операция не поддерживается на всех платформах. На этих платформах эта функция вызовет исключение.

Примечание: вызывает utimensat или lutimes.

С момента: 2.7.0.0

touchFile :: FilePath -> IO () Source

touchFile path устанавливает время доступа и изменения, связанные с файлом path, на текущее время.

Примечание: вызывает utime.

touchFd :: Fd -> IO () Source

Подобно touchFile, но использует дескриптор файла вместо пути. Данная операция не поддерживается на всех платформах. На этих платформах эта функция вызовет исключение.

Примечание: вызывает futimes.

С момента: 2.7.0.0

touchSymbolicLink :: FilePath -> IO () Source

Подобно touchFile, но не следует символьных ссылок. Данная операция не поддерживается на всех платформах. На этих платформах эта функция вызовет исключение.

Примечание: вызывает lutimes.

С момента: 2.7.0.0

Установка размеров файлов

setFileSize :: FilePath -> FileOffset -> IO () Source

Усекает файл до указанной длины. Если файл был больше заданной длины до выполнения этой операции, избыточная часть теряется.

Примечание: вызывает truncate.

setFdSize :: Fd -> FileOffset -> IO () Source

Действует как setFileSize, но использует дескриптор файла вместо FilePath.

Примечание: вызывает ftruncate.

Поиск системных ограничений для файла

data PathVar Source

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

FileSizeBits
LinkLimit
InputLineLimit
InputQueueLimit
FileNameLimit
PathNameLimit
PipeBufferLimit
SymbolicLinkLimit
SetOwnerAndGroupIsRestricted
FileNamesAreNotTruncated
VDisableChar
AsyncIOAvailable
PrioIOAvailable
SyncIOAvailable

getPathVar :: FilePath -> PathVar -> IO Limit Source

getPathVar var path получает динамическое значение запрашиваемого настраиваемого ограничения файла или параметра, связанного с файлом или каталогом path. Для определенных ограничений файлов getPathVar возвращает соответствующее значение. Для определенных параметров файлов результат getPathVar неопределён, но не является ошибкой.

Примечание: вызывает pathconf.

getFdPathVar :: Fd -> PathVar -> IO Limit Source

getFdPathVar var fd получает динамическое значение запрашиваемого настраиваемого ограничения файла или параметра, связанного с файлом или каталогом, подключенным к открытому каналу fd. Для определенных ограничений файлов, getFdPathVar возвращает соответствующее значение. Для определенных параметров файлов результат getFdPathVar неопределен, но не является ошибкой.

Примечание: вызывает fpathconf.

© 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-Files.html

Spec-Zone.ru

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