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 |
System.Posix.Files.ByteString
Description
Functions defined by the POSIX standards for manipulating and querying the file system. Names of underlying POSIX functions are indicated whenever possible. A more complete documentation of the POSIX functions together with a more detailed description of different error conditions are usually available in the system's manual pages or from http://www.unix.org/version3/online.html (free registration required).
When a function that calls an underlying POSIX function fails, the errno code is converted to an IOError
using errnoToIOError
. For a list of which errno codes may be generated, consult the POSIX documentation for the underlying function.
Synopsis
- unionFileModes :: FileMode -> FileMode -> FileMode
- intersectFileModes :: FileMode -> FileMode -> FileMode
- nullFileMode :: FileMode
- ownerReadMode :: FileMode
- ownerWriteMode :: FileMode
- ownerExecuteMode :: FileMode
- ownerModes :: FileMode
- groupReadMode :: FileMode
- groupWriteMode :: FileMode
- groupExecuteMode :: FileMode
- groupModes :: FileMode
- otherReadMode :: FileMode
- otherWriteMode :: FileMode
- otherExecuteMode :: FileMode
- otherModes :: FileMode
- setUserIDMode :: FileMode
- setGroupIDMode :: FileMode
- stdFileMode :: FileMode
- accessModes :: FileMode
- fileTypeModes :: FileMode
- blockSpecialMode :: FileMode
- characterSpecialMode :: FileMode
- namedPipeMode :: FileMode
- regularFileMode :: FileMode
- directoryMode :: FileMode
- symbolicLinkMode :: FileMode
- socketMode :: FileMode
- setFileMode :: RawFilePath -> FileMode -> IO ()
- setFdMode :: Fd -> FileMode -> IO ()
- setFileCreationMask :: FileMode -> IOFileMode
- fileAccess :: RawFilePath -> Bool -> Bool -> Bool -> IOBool
- fileExist :: RawFilePath -> IOBool
- dataFileStatus
- getFileStatus :: RawFilePath -> IOFileStatus
- getFdStatus :: Fd -> IOFileStatus
- getSymbolicLinkStatus :: RawFilePath -> IOFileStatus
- 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
- isNamedPipe :: FileStatus -> Bool
- isRegularFile :: FileStatus -> Bool
- isDirectory :: FileStatus -> Bool
- isSymbolicLink :: FileStatus -> Bool
- isSocket :: FileStatus -> Bool
- fileBlockSize :: FileStatus -> MaybeCBlkSize
- fileBlocks :: FileStatus -> MaybeCBlkCnt
- newtypeExtendedFileStatus = ExtendedFileStatus (ForeignPtr CStatx)
- newtypeCAttributes = CAttributesWord64
- haveStatx :: Bool
- getExtendedFileStatus :: MaybeFd -> RawFilePath -> StatxFlags -> StatxMask -> IOExtendedFileStatus
- newtypeStatxFlags = StatxFlagsCInt
- defaultStatxFlags :: StatxFlags
- patternEmptyPath :: StatxFlags
- patternNoAutoMount :: StatxFlags
- patternSymlinkNoFollow :: StatxFlags
- patternSyncAsStat :: StatxFlags
- patternForceSync :: StatxFlags
- patternDontSync :: StatxFlags
- newtypeStatxMask = StatxMaskCInt
- defaultStatxMask :: StatxMask
- patternStatxType :: StatxMask
- patternStatxMode :: StatxMask
- patternStatxNlink :: StatxMask
- patternStatxUid :: StatxMask
- patternStatxGid :: StatxMask
- patternStatxAtime :: StatxMask
- patternStatxMtime :: StatxMask
- patternStatxCtime :: StatxMask
- patternStatxIno :: StatxMask
- patternStatxSize :: StatxMask
- patternStatxBlocks :: StatxMask
- patternStatxBasicStats :: StatxMask
- patternStatxBtime :: StatxMask
- patternStatxMntId :: StatxMask
- patternStatxAll :: StatxMask
- fileBlockSizeX :: ExtendedFileStatus -> CBlkSize
- linkCountX :: ExtendedFileStatus -> CNlink
- fileOwnerX :: ExtendedFileStatus -> UserID
- fileGroupX :: ExtendedFileStatus -> GroupID
- fileModeX :: ExtendedFileStatus -> FileMode
- fileIDX :: ExtendedFileStatus -> FileID
- fileSizeX :: ExtendedFileStatus -> Word64
- fileBlocksX :: ExtendedFileStatus -> Word64
- accessTimeHiResX :: ExtendedFileStatus -> POSIXTime
- creationTimeHiResX :: ExtendedFileStatus -> POSIXTime
- statusChangeTimeHiResX :: ExtendedFileStatus -> POSIXTime
- modificationTimeHiResX :: ExtendedFileStatus -> POSIXTime
- deviceIDX :: ExtendedFileStatus -> DeviceID
- specialDeviceIDX :: ExtendedFileStatus -> DeviceID
- mountIDX :: ExtendedFileStatus -> Word64
- fileCompressedX :: ExtendedFileStatus -> Bool
- fileImmutableX :: ExtendedFileStatus -> Bool
- fileAppendX :: ExtendedFileStatus -> Bool
- fileNoDumpX :: ExtendedFileStatus -> Bool
- fileEncryptedX :: ExtendedFileStatus -> Bool
- fileVerityX :: ExtendedFileStatus -> Bool
- fileDaxX :: ExtendedFileStatus -> Bool
- isBlockDeviceX :: ExtendedFileStatus -> Bool
- isCharacterDeviceX :: ExtendedFileStatus -> Bool
- isNamedPipeX :: ExtendedFileStatus -> Bool
- isRegularFileX :: ExtendedFileStatus -> Bool
- isDirectoryX :: ExtendedFileStatus -> Bool
- isSymbolicLinkX :: ExtendedFileStatus -> Bool
- isSocketX :: ExtendedFileStatus -> Bool
- createNamedPipe :: RawFilePath -> FileMode -> IO ()
- createDevice :: RawFilePath -> FileMode -> DeviceID -> IO ()
- createLink :: RawFilePath -> RawFilePath -> IO ()
- removeLink :: RawFilePath -> IO ()
- createSymbolicLink :: RawFilePath -> RawFilePath -> IO ()
- readSymbolicLink :: RawFilePath -> IORawFilePath
- rename :: RawFilePath -> RawFilePath -> IO ()
- setOwnerAndGroup :: RawFilePath -> UserID -> GroupID -> IO ()
- setFdOwnerAndGroup :: Fd -> UserID -> GroupID -> IO ()
- setSymbolicLinkOwnerAndGroup :: RawFilePath -> UserID -> GroupID -> IO ()
- setFileTimes :: RawFilePath -> EpochTime -> EpochTime -> IO ()
- setFileTimesHiRes :: RawFilePath -> POSIXTime -> POSIXTime -> IO ()
- setFdTimesHiRes :: Fd -> POSIXTime -> POSIXTime -> IO ()
- setSymbolicLinkTimesHiRes :: RawFilePath -> POSIXTime -> POSIXTime -> IO ()
- touchFile :: RawFilePath -> IO ()
- touchFd :: Fd -> IO ()
- touchSymbolicLink :: RawFilePath -> IO ()
- setFileSize :: RawFilePath -> FileOffset -> IO ()
- setFdSize :: Fd -> FileOffset -> IO ()
- dataPathVar
- getPathVar :: RawFilePath -> PathVar -> IOLimit
- getFdPathVar :: Fd -> PathVar -> IOLimit
File modes
unionFileModes :: FileMode -> FileMode -> FileModeSource#
Combines the two file modes into one that contains modes that appear in either.
intersectFileModes :: FileMode -> FileMode -> FileModeSource#
Combines two file modes into one that only contains modes that appear in both.
nullFileMode :: FileModeSource#
No permissions.
ownerReadMode :: FileModeSource#
Owner has read permission.
ownerWriteMode :: FileModeSource#
Owner has write permission.
ownerExecuteMode :: FileModeSource#
Owner has execute permission.
Owner has read, write and execute permission.
groupReadMode :: FileModeSource#
Group has read permission.
groupWriteMode :: FileModeSource#
Group has write permission.
groupExecuteMode :: FileModeSource#
Group has execute permission.
Group has read, write and execute permission.
otherReadMode :: FileModeSource#
Others have read permission.
otherWriteMode :: FileModeSource#
Others have write permission.
otherExecuteMode :: FileModeSource#
Others have execute permission.
Others have read, write and execute permission.
setUserIDMode :: FileModeSource#
Set user ID on execution.
setGroupIDMode :: FileModeSource#
Set group ID on execution.
stdFileMode :: FileModeSource#
Owner, group and others have read and write permission.
accessModes :: FileModeSource#
Owner, group and others have read, write and execute permission.
Setting file modes
setFileMode :: RawFilePath -> FileMode -> IO () Source#
setFileMode path mode
changes permission of the file given by path
to mode
. This operation may fail with throwErrnoPathIfMinus1_
if path
doesn't exist or if the effective user ID of the current process is not that of the file's owner.
Note: calls chmod
.
setFdMode :: Fd -> FileMode -> IO () Source#
setFdMode fd mode
acts like setFileMode
but uses a file descriptor fd
instead of a FilePath
.
Note: calls fchmod
.
setFileCreationMask :: FileMode -> IOFileModeSource#
setFileCreationMask mode
sets the file mode creation mask to mode
. Modes set by this operation are subtracted from files and directories upon creation. The previous file creation mask is returned.
Note: calls umask
.
Checking file existence and permissions
fileAccess :: RawFilePath -> Bool -> Bool -> Bool -> IOBoolSource#
fileAccess name read write exec
checks if the file (or other file system object) name
can be accessed for reading, writing and/or executing. To check a permission set the corresponding argument to True
.
Note: calls access
.
File status
POSIX defines operations to get information, such as owner, permissions, size and access times, about a file. This information is represented by the FileStatus
type.
Note: see chmod
.
Limitations: Support for high resolution timestamps is filesystem dependent:
- HFS+ volumes on OS X only support whole-second times.
Obtaining file status
getFileStatus :: RawFilePath -> IOFileStatusSource#
getFileStatus path
calls gets the FileStatus
information (user ID, size, access times, etc.) for the file path
.
Note: calls stat
.
getFdStatus :: Fd -> IOFileStatusSource#
getFdStatus fd
acts as getFileStatus
but uses a file descriptor fd
.
Note: calls fstat
.
getSymbolicLinkStatus :: RawFilePath -> IOFileStatusSource#
Acts as getFileStatus
except when the RawFilePath
refers to a symbolic link. In that case the FileStatus
information of the symbolic link itself is returned instead of that of the file it points to.
Note: calls lstat
.
Querying file status
deviceID :: FileStatus -> DeviceIDSource#
ID of the device on which this file resides.
fileID :: FileStatus -> FileIDSource#
inode number
fileMode :: FileStatus -> FileModeSource#
File mode (such as permissions).
linkCount :: FileStatus -> LinkCountSource#
Number of hard links to this file.
fileOwner :: FileStatus -> UserIDSource#
ID of owner.
fileGroup :: FileStatus -> GroupIDSource#
ID of group.
specialDeviceID :: FileStatus -> DeviceIDSource#
Describes the device that this file represents.
fileSize :: FileStatus -> FileOffsetSource#
Size of the file in bytes. If this file is a symbolic link the size is the length of the pathname it contains.
accessTime :: FileStatus -> EpochTimeSource#
Time of last access.
modificationTime :: FileStatus -> EpochTimeSource#
Time of last modification.
statusChangeTime :: FileStatus -> EpochTimeSource#
Time of last status change (i.e. owner, group, link count, mode, etc.).
accessTimeHiRes :: FileStatus -> POSIXTimeSource#
Time of last access in sub-second resolution. Depends on the timestamp resolution of the underlying filesystem.
modificationTimeHiRes :: FileStatus -> POSIXTimeSource#
Time of last modification in sub-second resolution. Depends on the timestamp resolution of the underlying filesystem.
statusChangeTimeHiRes :: FileStatus -> POSIXTimeSource#
Time of last status change (i.e. owner, group, link count, mode, etc.) in sub-second resolution. Depends on the timestamp resolution of the underlying filesystem.
isBlockDevice :: FileStatus -> BoolSource#
Checks if this file is a block device.
isCharacterDevice :: FileStatus -> BoolSource#
Checks if this file is a character device.
isNamedPipe :: FileStatus -> BoolSource#
Checks if this file is a named pipe device.
isRegularFile :: FileStatus -> BoolSource#
Checks if this file is a regular file device.
isDirectory :: FileStatus -> BoolSource#
Checks if this file is a directory device.
isSymbolicLink :: FileStatus -> BoolSource#
Checks if this file is a symbolic link device.
isSocket :: FileStatus -> BoolSource#
Checks if this file is a socket device.
fileBlockSize :: FileStatus -> MaybeCBlkSizeSource#
Gives the preferred block size for efficient filesystem I/O in bytes. Returns Nothing
if st_blocksize
is not supported on this platform.
fileBlocks :: FileStatus -> MaybeCBlkCntSource#
Number of blocks allocated for this file, in units of 512-bytes. Returns Nothing
if st_blocks
is not supported on this platform.
Extended file status
newtypeExtendedFileStatusSource#
Constructors
ExtendedFileStatus (ForeignPtr CStatx) | The constructor is considered internal and may change. |
newtypeCAttributesSource#
Constructors
CAttributesWord64 |
Instances
Whether statx
is available on this platform and getExtendedFileStatus
and related functions will work.
Obtaining extended file status
Arguments
:: MaybeFd | Optional directory file descriptor ( |
-> RawFilePath |
|
-> StatxFlags | flags |
-> StatxMask | mask |
-> IOExtendedFileStatus |
Gets extended file status information.
The target file to open is identified in one of the following ways:
- If
pathname
begins with a slash, then it is an absolute pathname that identifies the target file. In this case,dirfd
is ignored - If
pathname
is a string that begins with a character other than a slash anddirfd
is a file descriptor that refers to a directory, then pathname is a relative pathname that is interpreted relative to the directory referred to by dirfd. (Seeopenat(2)
for an explanation of why this is useful.) - If
pathname
is an empty string and theEmptyPath
flag is specified in flags (see below), then the target file is the one referred to by the file descriptordirfd
.
Note: calls statx
.
Flags
newtypeStatxFlagsSource#
Statx flags.
See the pattern synonyms for possible flags. These are combined via (<>)
. Flags can be tested via (.&.)
.
The following flags influence pathname-based lookup:
The following flags can be used to control what sort of synchronization the kernel will do when querying a file on a remote filesystem:
Constructors
StatxFlagsCInt |
Instances
patternEmptyPath :: StatxFlagsSource#
If pathname to getExtendedFileStatus
is an empty string, operate on the file referred to by the 'Maybe Fd' argument.
In this case, it can refer to any type of file, not just a directory.
patternNoAutoMount :: StatxFlagsSource#
Don't automount the terminal ("basename") component of pathname if it is a directory that is an automount point. This allows the caller to gather attributes of an automount point (rather than the location it would mount). This flag can be used in tools that scan directories to prevent mass-automounting of a directory of automount points. This flag has no effect if the mount point has already been mounted over.
patternSymlinkNoFollow :: StatxFlagsSource#
If pathname is a symbolic link, do not dereference it: instead return information about the link itself, like lstat(2)
.
patternSyncAsStat :: StatxFlagsSource#
Do whatever stat(2)
does. This is the default and is very much filesystem-specific.
patternForceSync :: StatxFlagsSource#
Force the attributes to be synchronized with the server. This may require that a network filesystem perform a data writeback to get the timestamps correct.
patternDontSync :: StatxFlagsSource#
Don't synchronize anything, but rather just take whatever the system has cached if possible. This may mean that the information returned is approximate, but, on a network filesystem, it may not involve a round trip to the server - even if no lease is held.
Mask
Mask argument to statx
. It's used to tell the kernel which fields the caller is interested in.
See the pattern synonyms for possible masks. These are combined via (<>)
. Masks can be tested via (.&.)
.
Instances
patternStatxNlink :: StatxMaskSource#
Want stx_nlink
.
patternStatxAtime :: StatxMaskSource#
Want stx_atime
.
patternStatxMtime :: StatxMaskSource#
Want stx_mtime
.
patternStatxCtime :: StatxMaskSource#
Want stx_ctime
.
patternStatxBlocks :: StatxMaskSource#
Want stx_blocks
.
patternStatxBasicStats :: StatxMaskSource#
Want all of the above.
patternStatxBtime :: StatxMaskSource#
Want stx_btime
.
patternStatxMntId :: StatxMaskSource#
Want stx_mnt_id
.
Querying extended file status
fileBlockSizeX :: ExtendedFileStatus -> CBlkSizeSource#
The "preferred" block size for efficient filesystem I/O. (Writing to a file in smaller chunks may cause an inefficient read-mod‐ify-rewrite.)
linkCountX :: ExtendedFileStatus -> CNlinkSource#
The number of hard links on a file.
fileOwnerX :: ExtendedFileStatus -> UserIDSource#
Te user ID of the owner of the file.
fileGroupX :: ExtendedFileStatus -> GroupIDSource#
The ID of the group owner of the file.
fileModeX :: ExtendedFileStatus -> FileModeSource#
The file type and mode. See inode(7)
for details.
fileIDX :: ExtendedFileStatus -> FileIDSource#
The inode number of the file.
fileSizeX :: ExtendedFileStatus -> Word64Source#
The size of the file (if it is a regular file or a symbolic link) in bytes. The size of a symbolic link is the length of the pathname it contains, without a terminating null byte.
fileBlocksX :: ExtendedFileStatus -> Word64Source#
The number of blocks allocated to the file on the medium, in 512-byte units. (This may be smaller than stx_size/512 when the file has holes.)
accessTimeHiResX :: ExtendedFileStatus -> POSIXTimeSource#
The file's last access timestamp.
creationTimeHiResX :: ExtendedFileStatus -> POSIXTimeSource#
The file's creation timestamp.
statusChangeTimeHiResX :: ExtendedFileStatus -> POSIXTimeSource#
The file's last status change timestamp.
modificationTimeHiResX :: ExtendedFileStatus -> POSIXTimeSource#
The file's last modification timestamp.
deviceIDX :: ExtendedFileStatus -> DeviceIDSource#
ID of the device on which this file resides.
specialDeviceIDX :: ExtendedFileStatus -> DeviceIDSource#
Describes the device that this file represents.
mountIDX :: ExtendedFileStatus -> Word64Source#
The mount ID of the mount containing the file. This is the same number reported by name_to_handle_at(2) and corresponds to the number in the first field in one of the records in procself/mountinfo.
fileCompressedX :: ExtendedFileStatus -> BoolSource#
The file is compressed by the filesystem and may take extra resources to access. This is an extended attribute.
fileImmutableX :: ExtendedFileStatus -> BoolSource#
The file cannot be modified: it cannot be deleted or renamed, no hard links can be created to this file and no data can be written to it. See chattr(1)
. This is an extended attribute.
fileAppendX :: ExtendedFileStatus -> BoolSource#
The file can only be opened in append mode for writing. Random access writing is not permitted. See chattr(1)
. This is an extended attribute.
fileNoDumpX :: ExtendedFileStatus -> BoolSource#
File is not a candidate for backup when a backup program such as dump(8)
is run. See chattr(1)
. This is an extended attribute.
fileEncryptedX :: ExtendedFileStatus -> BoolSource#
A key is required for the file to be encrypted by the filesystem. This is an extended attribute.
fileVerityX :: ExtendedFileStatus -> BoolSource#
The file has fs-verity enabled. It cannot be written to, and all reads from it will be verified against a cryptographic hash that covers the entire file (e.g., via a Merkle tree). This is an extended attribute. Since Linux 5.5.
fileDaxX :: ExtendedFileStatus -> BoolSource#
The file is in the DAX (cpu direct access) state. This is an extended attribute. Since Linux 5.8.
isBlockDeviceX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a block device.
isCharacterDeviceX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a character device.
isNamedPipeX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a named pipe device.
isRegularFileX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a regular file device.
isDirectoryX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a directory device.
isSymbolicLinkX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a symbolic link device.
isSocketX :: ExtendedFileStatus -> BoolSource#
Checks if this file is a socket device.
Creation
createNamedPipe :: RawFilePath -> FileMode -> IO () Source#
createNamedPipe fifo mode
creates a new named pipe, fifo
, with permissions based on mode
. May fail with throwErrnoPathIfMinus1_
if a file named name
already exists or if the effective user ID of the current process doesn't have permission to create the pipe.
Note: calls mkfifo
.
createDevice :: RawFilePath -> FileMode -> DeviceID -> IO () Source#
createDevice path mode dev
creates either a regular or a special file depending on the value of mode
(and dev
). mode
will normally be either blockSpecialMode
or characterSpecialMode
. May fail with throwErrnoPathIfMinus1_
if a file named name
already exists or if the effective user ID of the current process doesn't have permission to create the file.
Note: calls mknod
.
Hard links
createLink :: RawFilePath -> RawFilePath -> IO () Source#
createLink old new
creates a new path, new
, linked to an existing file, old
.
Note: calls link
.
removeLink :: RawFilePath -> IO () Source#
removeLink path
removes the link named path
.
Note: calls unlink
.
Symbolic links
createSymbolicLink :: RawFilePath -> RawFilePath -> IO () Source#
createSymbolicLink file1 file2
creates a symbolic link named file2
which points to the file file1
.
Symbolic links are interpreted at run-time as if the contents of the link had been substituted into the path being followed to find a file or directory.
Note: calls symlink
.
readSymbolicLink :: RawFilePath -> IORawFilePathSource#
Reads the RawFilePath
pointed to by the symbolic link and returns it.
Note: calls readlink
.
Renaming files
rename :: RawFilePath -> RawFilePath -> IO () Source#
rename old new
renames a file or directory from old
to new
.
Note: calls rename
.
Changing file ownership
setOwnerAndGroup :: RawFilePath -> UserID -> GroupID -> IO () Source#
setOwnerAndGroup path uid gid
changes the owner and group of path
to uid
and gid
, respectively.
If uid
or gid
is specified as -1, then that ID is not changed.
Note: calls chown
.
setFdOwnerAndGroup :: Fd -> UserID -> GroupID -> IO () Source#
Acts as setOwnerAndGroup
but uses a file descriptor instead of a FilePath
.
Note: calls fchown
.
setSymbolicLinkOwnerAndGroup :: RawFilePath -> UserID -> GroupID -> IO () Source#
Acts as setOwnerAndGroup
but does not follow symlinks (and thus changes permissions on the link itself).
Note: calls lchown
.
Changing file timestamps
setFileTimes :: RawFilePath -> EpochTime -> EpochTime -> IO () Source#
setFileTimes path atime mtime
sets the access and modification times associated with file path
to atime
and mtime
, respectively.
Note: calls utime
.
setFileTimesHiRes :: RawFilePath -> POSIXTime -> POSIXTime -> IO () Source#
Like setFileTimes
but timestamps can have sub-second resolution.
Note: calls utimensat
or utimes
. Support for high resolution timestamps is filesystem dependent with the following limitations:
- HFS+ volumes on OS X truncate the sub-second part of the timestamp.
setFdTimesHiRes :: Fd -> POSIXTime -> POSIXTime -> IO () Source#
Like setFileTimesHiRes
but uses a file descriptor instead of a path. This operation is not supported on all platforms. On these platforms, this function will raise an exception.
Note: calls futimens
or futimes
. Support for high resolution timestamps is filesystem dependent with the following limitations:
- HFS+ volumes on OS X truncate the sub-second part of the timestamp.
Since: 2.7.0.0
setSymbolicLinkTimesHiRes :: RawFilePath -> POSIXTime -> POSIXTime -> IO () Source#
Like setFileTimesHiRes
but does not follow symbolic links. This operation is not supported on all platforms. On these platforms, this function will raise an exception.
Note: calls utimensat
or lutimes
. Support for high resolution timestamps is filesystem dependent with the following limitations:
- HFS+ volumes on OS X truncate the sub-second part of the timestamp.
touchFile :: RawFilePath -> IO () Source#
touchFile path
sets the access and modification times associated with file path
to the current time.
Note: calls utime
.
touchFd :: Fd -> IO () Source#
Like touchFile
but uses a file descriptor instead of a path. This operation is not supported on all platforms. On these platforms, this function will raise an exception.
Note: calls futimes
.
Since: 2.7.0.0
touchSymbolicLink :: RawFilePath -> IO () Source#
Like touchFile
but does not follow symbolic links. This operation is not supported on all platforms. On these platforms, this function will raise an exception.
Note: calls lutimes
.
Setting file sizes
setFileSize :: RawFilePath -> FileOffset -> IO () Source#
Truncates the file down to the specified length. If the file was larger than the given length before this operation was performed the extra is lost.
Note: calls truncate
.
setFdSize :: Fd -> FileOffset -> IO () Source#
Acts as setFileSize
but uses a file descriptor instead of a FilePath
.
Note: calls ftruncate
.
Find system-specific limits for a file
getPathVar :: RawFilePath -> PathVar -> IOLimitSource#
getPathVar var path
obtains the dynamic value of the requested configurable file limit or option associated with file or directory path
. For defined file limits, getPathVar
returns the associated value. For defined file options, the result of getPathVar
is undefined, but not failure.
Note: calls pathconf
.
getFdPathVar :: Fd -> PathVar -> IOLimitSource#
getFdPathVar var fd
obtains the dynamic value of the requested configurable file limit or option associated with the file or directory attached to the open channel fd
. For defined file limits, getFdPathVar
returns the associated value. For defined file options, the result of getFdPathVar
is undefined, but not failure.
Note: calls fpathconf
.