LLVM 22.0.0git
|
Namespaces | |
namespace | detail |
Classes | |
class | basic_file_status |
Represents the result of a call to directory_iterator::status(). More... | |
class | directory_entry |
directory_entry - A single entry in a directory. More... | |
class | directory_iterator |
directory_iterator - Iterates through the entries in path. More... | |
class | file_status |
Represents the result of a call to sys::fs::status(). More... | |
class | FileLocker |
RAII class that facilitates file locking. More... | |
class | mapped_file_region |
This class represents a memory mapped file. More... | |
class | recursive_directory_iterator |
recursive_directory_iterator - Same as directory_iterator except for it recurses down into child directories. More... | |
struct | space_info |
space_info - Self explanatory. More... | |
class | TempFile |
Represents a temporary file. More... | |
class | UniqueID |
Typedefs | |
using | file_t = int |
Enumerations | |
enum class | file_type { status_error , file_not_found , regular_file , directory_file , symlink_file , block_file , character_file , fifo_file , socket_file , type_unknown } |
An enumeration for the file system's view of the type. More... | |
enum | perms { no_perms = 0 , owner_read = 0400 , owner_write = 0200 , owner_exe = 0100 , owner_all = owner_read | owner_write | owner_exe , group_read = 040 , group_write = 020 , group_exe = 010 , group_all = group_read | group_write | group_exe , others_read = 04 , others_write = 02 , others_exe = 01 , others_all = others_read | others_write | others_exe , all_read = owner_read | group_read | others_read , all_write = owner_write | group_write | others_write , all_exe = owner_exe | group_exe | others_exe , all_all = owner_all | group_all | others_all , set_uid_on_exe = 04000 , set_gid_on_exe = 02000 , sticky_bit = 01000 , all_perms = all_all | set_uid_on_exe | set_gid_on_exe | sticky_bit , perms_not_known = 0xFFFF } |
Functions | |
perms | operator| (perms l, perms r) |
perms | operator& (perms l, perms r) |
perms & | operator|= (perms &l, perms r) |
perms & | operator&= (perms &l, perms r) |
perms | operator~ (perms x) |
static std::error_code | createTemporaryFile (const Twine &Model, int &ResultFD, llvm::SmallVectorImpl< char > &ResultPath, FSEntity Type, sys::fs::OpenFlags Flags=sys::fs::OF_None) |
static std::error_code | createTemporaryFile (const Twine &Prefix, StringRef Suffix, int &ResultFD, llvm::SmallVectorImpl< char > &ResultPath, FSEntity Type, sys::fs::OpenFlags Flags=sys::fs::OF_None) |
static std::error_code | copy_file_internal (int ReadFD, int WriteFD) |
Physical Operators | |
LLVM_ABI void | make_absolute (const Twine ¤t_directory, SmallVectorImpl< char > &path) |
Make path an absolute path. | |
LLVM_ABI std::error_code | make_absolute (SmallVectorImpl< char > &path) |
Make path an absolute path. | |
LLVM_ABI std::error_code | create_directories (const Twine &path, bool IgnoreExisting=true, perms Perms=owner_all|group_all) |
Create all the non-existent directories in path. | |
LLVM_ABI std::error_code | create_directory (const Twine &path, bool IgnoreExisting=true, perms Perms=owner_all|group_all) |
Create the directory in path. | |
LLVM_ABI std::error_code | create_link (const Twine &to, const Twine &from) |
Create a link from from to to. | |
LLVM_ABI std::error_code | create_hard_link (const Twine &to, const Twine &from) |
Create a hard link from from to to, or return an error. | |
LLVM_ABI std::error_code | real_path (const Twine &path, SmallVectorImpl< char > &output, bool expand_tilde=false) |
Collapse all . | |
LLVM_ABI void | expand_tilde (const Twine &path, SmallVectorImpl< char > &output) |
Expands ~ expressions to the user's home directory. | |
LLVM_ABI std::error_code | current_path (SmallVectorImpl< char > &result) |
Get the current path. | |
LLVM_ABI std::error_code | set_current_path (const Twine &path) |
Set the current path. | |
LLVM_ABI std::error_code | remove (const Twine &path, bool IgnoreNonExisting=true) |
Remove path. | |
LLVM_ABI std::error_code | remove_directories (const Twine &path, bool IgnoreErrors=true) |
Recursively delete a directory. | |
LLVM_ABI std::error_code | rename (const Twine &from, const Twine &to) |
Rename from to to. | |
LLVM_ABI std::error_code | copy_file (const Twine &From, const Twine &To) |
Copy the contents of From to To. | |
LLVM_ABI std::error_code | copy_file (const Twine &From, int ToFD) |
Copy the contents of From to To. | |
LLVM_ABI std::error_code | resize_file (int FD, uint64_t Size) |
Resize path to size. | |
std::error_code | resize_file_before_mapping_readwrite (int FD, uint64_t Size) |
Resize FD to Size before mapping mapped_file_region::readwrite. | |
LLVM_ABI ErrorOr< MD5::MD5Result > | md5_contents (int FD) |
Compute an MD5 hash of a file's contents. | |
LLVM_ABI ErrorOr< MD5::MD5Result > | md5_contents (const Twine &Path) |
Version of compute_md5 that doesn't require an open file descriptor. | |
Variables | |
LLVM_ABI const file_t | kInvalidFile |
Physical Observers | |
enum class | AccessMode { Exist , Write , Execute } |
enum | CreationDisposition : unsigned { CD_CreateAlways = 0 , CD_CreateNew = 1 , CD_OpenExisting = 2 , CD_OpenAlways = 3 } |
enum | FileAccess : unsigned { FA_Read = 1 , FA_Write = 2 } |
enum | OpenFlags : unsigned { OF_None = 0 , OF_Text = 1 , OF_CRLF = 2 , OF_TextWithCRLF = OF_Text | OF_CRLF , OF_Append = 4 , OF_Delete = 8 , OF_ChildInherit = 16 , OF_UpdateAtime = 32 } |
enum | : size_t { DefaultReadChunkSize = 4 * 4096 } |
Default chunk size for readNativeFileToEOF(). More... | |
enum class | LockKind { Exclusive , Shared } |
An enumeration for the lock kind. More... | |
LLVM_ABI bool | exists (const basic_file_status &status) |
Does file exist? | |
LLVM_ABI std::error_code | access (const Twine &Path, AccessMode Mode) |
Can the file be accessed? | |
bool | exists (const Twine &Path) |
Does file exist? | |
LLVM_ABI bool | can_execute (const Twine &Path) |
Can we execute this file? | |
bool | can_write (const Twine &Path) |
Can we write this file? | |
LLVM_ABI bool | equivalent (file_status A, file_status B) |
Do file_status's represent the same thing? | |
LLVM_ABI std::error_code | equivalent (const Twine &A, const Twine &B, bool &result) |
Do paths represent the same thing? | |
bool | equivalent (const Twine &A, const Twine &B) |
Simpler version of equivalent for clients that don't need to differentiate between an error and false. | |
LLVM_ABI std::error_code | is_local (const Twine &path, bool &result) |
Is the file mounted on a local filesystem? | |
LLVM_ABI std::error_code | is_local (int FD, bool &result) |
Version of is_local accepting an open file descriptor. | |
bool | is_local (const Twine &Path) |
Simpler version of is_local for clients that don't need to differentiate between an error and false. | |
bool | is_local (int FD) |
Simpler version of is_local accepting an open file descriptor for clients that don't need to differentiate between an error and false. | |
LLVM_ABI file_type | get_file_type (const Twine &Path, bool Follow=true) |
Does status represent a directory? | |
LLVM_ABI bool | is_directory (const basic_file_status &status) |
Does status represent a directory? | |
LLVM_ABI std::error_code | is_directory (const Twine &path, bool &result) |
Is path a directory? | |
bool | is_directory (const Twine &Path) |
Simpler version of is_directory for clients that don't need to differentiate between an error and false. | |
LLVM_ABI bool | is_regular_file (const basic_file_status &status) |
Does status represent a regular file? | |
LLVM_ABI std::error_code | is_regular_file (const Twine &path, bool &result) |
Is path a regular file? | |
bool | is_regular_file (const Twine &Path) |
Simpler version of is_regular_file for clients that don't need to differentiate between an error and false. | |
LLVM_ABI bool | is_symlink_file (const basic_file_status &status) |
Does status represent a symlink file? | |
LLVM_ABI std::error_code | is_symlink_file (const Twine &path, bool &result) |
Is path a symlink file? | |
bool | is_symlink_file (const Twine &Path) |
Simpler version of is_symlink_file for clients that don't need to differentiate between an error and false. | |
LLVM_ABI bool | is_other (const basic_file_status &status) |
Does this status represent something that exists but is not a directory or regular file? | |
LLVM_ABI std::error_code | is_other (const Twine &path, bool &result) |
Is path something that exists but is not a directory, regular file, or symlink? | |
LLVM_ABI std::error_code | status (const Twine &path, file_status &result, bool follow=true) |
Get file status as if by POSIX stat(). | |
LLVM_ABI std::error_code | status (int FD, file_status &Result) |
A version for when a file descriptor is already available. | |
LLVM_ABI unsigned | getUmask () |
Get file creation mode mask of the process. | |
LLVM_ABI std::error_code | setPermissions (const Twine &Path, perms Permissions) |
Set file permissions. | |
LLVM_ABI std::error_code | setPermissions (int FD, perms Permissions) |
Vesion of setPermissions accepting a file descriptor. | |
LLVM_ABI ErrorOr< perms > | getPermissions (const Twine &Path) |
Get file permissions. | |
std::error_code | file_size (const Twine &Path, uint64_t &Result) |
Get file size. | |
LLVM_ABI std::error_code | setLastAccessAndModificationTime (int FD, TimePoint<> AccessTime, TimePoint<> ModificationTime) |
Set the file modification and access time. | |
std::error_code | setLastAccessAndModificationTime (int FD, TimePoint<> Time) |
Simpler version that sets both file modification and access time to the same time. | |
LLVM_ABI bool | status_known (const basic_file_status &s) |
Is status available? | |
LLVM_ABI std::error_code | status_known (const Twine &path, bool &result) |
Is status available? | |
LLVM_ABI void | createUniquePath (const Twine &Model, SmallVectorImpl< char > &ResultPath, bool MakeAbsolute) |
Create a potentially unique file name but does not create it. | |
LLVM_ABI std::error_code | createUniqueFile (const Twine &Model, int &ResultFD, SmallVectorImpl< char > &ResultPath, OpenFlags Flags=OF_None, unsigned Mode=all_read|all_write) |
Create a uniquely named file. | |
LLVM_ABI std::error_code | createUniqueFile (const Twine &Model, SmallVectorImpl< char > &ResultPath, unsigned Mode=all_read|all_write) |
Simpler version for clients that don't want an open file. | |
LLVM_ABI std::error_code | createTemporaryFile (const Twine &Prefix, StringRef Suffix, int &ResultFD, SmallVectorImpl< char > &ResultPath, OpenFlags Flags=OF_None) |
Create a file in the system temporary directory. | |
LLVM_ABI std::error_code | createTemporaryFile (const Twine &Prefix, StringRef Suffix, SmallVectorImpl< char > &ResultPath, OpenFlags Flags=OF_None) |
Simpler version for clients that don't want an open file. | |
LLVM_ABI std::error_code | createUniqueDirectory (const Twine &Prefix, SmallVectorImpl< char > &ResultPath) |
LLVM_ABI std::error_code | getPotentiallyUniqueFileName (const Twine &Model, SmallVectorImpl< char > &ResultPath) |
Get a unique name, not currently exisiting in the filesystem. | |
LLVM_ABI std::error_code | getPotentiallyUniqueTempFileName (const Twine &Prefix, StringRef Suffix, SmallVectorImpl< char > &ResultPath) |
Get a unique temporary file name, not currently exisiting in the filesystem. | |
OpenFlags | operator| (OpenFlags A, OpenFlags B) |
OpenFlags & | operator|= (OpenFlags &A, OpenFlags B) |
FileAccess | operator| (FileAccess A, FileAccess B) |
FileAccess & | operator|= (FileAccess &A, FileAccess B) |
LLVM_ABI std::error_code | openFile (const Twine &Name, int &ResultFD, CreationDisposition Disp, FileAccess Access, OpenFlags Flags, unsigned Mode=0666) |
Opens a file with the specified creation disposition, access mode, and flags and returns a file descriptor. | |
LLVM_ABI Expected< file_t > | openNativeFile (const Twine &Name, CreationDisposition Disp, FileAccess Access, OpenFlags Flags, unsigned Mode=0666) |
Opens a file with the specified creation disposition, access mode, and flags and returns a platform-specific file object. | |
LLVM_ABI file_t | convertFDToNativeFile (int FD) |
Converts from a Posix file descriptor number to a native file handle. | |
LLVM_ABI file_t | getStdinHandle () |
Return an open handle to standard in. | |
LLVM_ABI file_t | getStdoutHandle () |
Return an open handle to standard out. | |
LLVM_ABI file_t | getStderrHandle () |
Return an open handle to standard error. | |
LLVM_ABI Expected< size_t > | readNativeFile (file_t FileHandle, MutableArrayRef< char > Buf) |
Reads Buf.size() bytes from FileHandle into Buf . | |
LLVM_ABI Error | readNativeFileToEOF (file_t FileHandle, SmallVectorImpl< char > &Buffer, ssize_t ChunkSize=DefaultReadChunkSize) |
Reads from FileHandle until EOF, appending to Buffer in chunks of size ChunkSize . | |
LLVM_ABI Expected< size_t > | readNativeFileSlice (file_t FileHandle, MutableArrayRef< char > Buf, uint64_t Offset) |
Reads Buf.size() bytes from FileHandle at offset Offset into Buf . | |
std::error_code | openFileForWrite (const Twine &Name, int &ResultFD, CreationDisposition Disp=CD_CreateAlways, OpenFlags Flags=OF_None, unsigned Mode=0666) |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor. | |
Expected< file_t > | openNativeFileForWrite (const Twine &Name, CreationDisposition Disp, OpenFlags Flags, unsigned Mode=0666) |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor. | |
std::error_code | openFileForReadWrite (const Twine &Name, int &ResultFD, CreationDisposition Disp, OpenFlags Flags, unsigned Mode=0666) |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor. | |
Expected< file_t > | openNativeFileForReadWrite (const Twine &Name, CreationDisposition Disp, OpenFlags Flags, unsigned Mode=0666) |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor. | |
LLVM_ABI std::error_code | openFileForRead (const Twine &Name, int &ResultFD, OpenFlags Flags=OF_None, SmallVectorImpl< char > *RealPath=nullptr) |
Opens the file with the given name in a read-only mode, returning its open file descriptor. | |
LLVM_ABI Expected< file_t > | openNativeFileForRead (const Twine &Name, OpenFlags Flags=OF_None, SmallVectorImpl< char > *RealPath=nullptr) |
Opens the file with the given name in a read-only mode, returning its open file descriptor. | |
LLVM_ABI std::error_code | tryLockFile (int FD, std::chrono::milliseconds Timeout=std::chrono::milliseconds(0), LockKind Kind=LockKind::Exclusive) |
Try to locks the file during the specified time. | |
LLVM_ABI std::error_code | lockFile (int FD, LockKind Kind=LockKind::Exclusive) |
Lock the file. | |
LLVM_ABI std::error_code | unlockFile (int FD) |
Unlock the file. | |
LLVM_ABI std::error_code | closeFile (file_t &F) |
Close the file object. | |
LLVM_ABI std::error_code | changeFileOwnership (int FD, uint32_t Owner, uint32_t Group) |
Change ownership of a file. | |
LLVM_ABI std::error_code | getUniqueID (const Twine Path, UniqueID &Result) |
LLVM_ABI ErrorOr< space_info > | disk_space (const Twine &Path) |
Get disk space usage information. | |
LLVM_ABI std::string | getMainExecutable (const char *argv0, void *MainExecAddr) |
Return the path to the main executable, given the value of argv[0] from program startup and the address of main itself. | |
typedef int llvm::sys::fs::file_t |
Definition at line 56 of file FileSystem.h.
anonymous enum : size_t |
Default chunk size for readNativeFileToEOF().
Enumerator | |
---|---|
DefaultReadChunkSize |
Definition at line 1024 of file FileSystem.h.
|
strong |
Enumerator | |
---|---|
Exist | |
Write | |
Execute |
Definition at line 449 of file FileSystem.h.
Definition at line 730 of file FileSystem.h.
|
strong |
An enumeration for the file system's view of the type.
Enumerator | |
---|---|
status_error | |
file_not_found | |
regular_file | |
directory_file | |
symlink_file | |
block_file | |
character_file | |
fifo_file | |
socket_file | |
type_unknown |
Definition at line 62 of file FileSystem.h.
Enumerator | |
---|---|
FA_Read | |
FA_Write |
Definition at line 752 of file FileSystem.h.
|
strong |
An enumeration for the lock kind.
Enumerator | |
---|---|
Exclusive | |
Shared |
Definition at line 1175 of file FileSystem.h.
enum llvm::sys::fs::OpenFlags : unsigned |
Definition at line 757 of file FileSystem.h.
enum llvm::sys::fs::perms |
Definition at line 82 of file FileSystem.h.
LLVM_ABI std::error_code llvm::sys::fs::access | ( | const Twine & | Path, |
AccessMode | Mode | ||
) |
Can the file be accessed?
Path | Input path. |
Referenced by can_write(), createUniqueEntity(), exists(), and llvm::LockFileManager::waitForUnlockFor().
Can we execute this file?
Path | Input path. |
Referenced by llvm::object::writeUniversalBinary().
Can we write this file?
Path | Input path. |
Definition at line 476 of file FileSystem.h.
LLVM_ABI std::error_code llvm::sys::fs::changeFileOwnership | ( | int | FD, |
uint32_t | Owner, | ||
uint32_t | Group | ||
) |
Change ownership of a file.
Owner | The owner of the file to change to. |
Group | The group of the file to change to. |
Referenced by llvm::FilePermissionsApplier::apply().
Close the file object.
This should be used instead of ::close for portability. On error, the caller should assume the file is closed, as is the case for Process::SafelyCloseFileDescriptor
F | On input, this is the file to close. On output, the file is set to kInvalidFile. |
Referenced by llvm::NewArchiveMember::getFile(), llvm::MemoryBuffer::getFileAsStream(), getFileAux(), llvm::orc::loadLinkableFile(), llvm::orc::loadMachORelocatableObject(), llvm::xray::loadProfile(), llvm::xray::loadTraceFile(), loadYAML(), llvm::localCache(), llvm::streamFile(), and llvm::InteractiveModelRunner::~InteractiveModelRunner().
|
inline |
Converts from a Posix file descriptor number to a native file handle.
On Windows, this retreives the underlying handle. On non-Windows, this is a no-op.
Definition at line 998 of file FileSystem.h.
Referenced by llvm::LTOModule::createFromOpenFileSlice(), createOnDiskBuffer(), llvm::localCache(), and llvm::InteractiveModelRunner::~InteractiveModelRunner().
Copy the contents of From to To.
From | The path to copy from. |
To | The path to copy to. This is created. |
Definition at line 1016 of file Path.cpp.
References CD_CreateAlways, copy_file_internal(), From, OF_None, openFileForRead(), and openFileForWrite().
Referenced by llvm::FileCollector::copyFiles(), llvm::sys::fs::TempFile::keep(), and llvm::ThinLTOCodeGenerator::writeGeneratedObject().
Copy the contents of From to To.
From | The path to copy from. |
ToFD | The open file descriptor of the destination file. |
Definition at line 1035 of file Path.cpp.
References copy_file_internal(), From, OF_None, and openFileForRead().
|
static |
Definition at line 991 of file Path.cpp.
References llvm::errnoAsErrorCode(), llvm::support::endian::read(), and llvm::write().
Referenced by copy_file().
std::error_code llvm::sys::fs::create_directories | ( | const Twine & | path, |
bool | IgnoreExisting = true , |
||
perms | Perms = owner_all | group_all |
||
) |
Create all the non-existent directories in path.
path | Directories to create. |
Definition at line 967 of file Path.cpp.
References create_directories(), create_directory(), llvm::StringRef::empty(), llvm::no_such_file_or_directory, P, and llvm::sys::path::parent_path().
Referenced by codegen(), llvm::FileCollector::copyFiles(), create_directories(), llvm::logicalview::LVSplitContext::createSplitFolder(), llvm::lto::getThinLTOOutputFile(), llvm::localCache(), prepareDumpIRFileDescriptor(), and llvm::ThinLTOCodeGenerator::run().
LLVM_ABI std::error_code llvm::sys::fs::create_directory | ( | const Twine & | path, |
bool | IgnoreExisting = true , |
||
perms | Perms = owner_all|group_all |
||
) |
Create the directory in path.
path | Directory to create. |
Referenced by create_directories(), createUniqueEntity(), and llvm::unittest::TempDir::TempDir().
Create a hard link from from to to, or return an error.
to | The path to hard link to. |
from | The path to hard link from. This is created. |
Referenced by llvm::ThinLTOCodeGenerator::writeGeneratedObject().
Create a link from from to to.
The link may be a soft or a hard link, depending on the platform. The caller may not assume which one. Currently on windows it creates a hard link since soft links require extra privileges. On unix, it creates a soft link since hard links don't work on SMB file systems.
to | The path to hard link to. |
from | The path to hard link from. This is created. |
Referenced by llvm::unittest::TempLink::TempLink(), and llvm::LockFileManager::tryLock().
|
static |
Definition at line 842 of file Path.cpp.
References all_read, all_write, assert(), createUniqueEntity(), llvm::StringRef::npos, and P.
|
static |
Definition at line 855 of file Path.cpp.
References createTemporaryFile(), and llvm::StringRef::empty().
std::error_code llvm::sys::fs::createTemporaryFile | ( | const Twine & | Prefix, |
StringRef | Suffix, | ||
int & | ResultFD, | ||
SmallVectorImpl< char > & | ResultPath, | ||
OpenFlags | Flags = OF_None |
||
) |
Create a file in the system temporary directory.
The filename is of the form prefix-random_chars.suffix. Since the directory is not know to the caller, Prefix and Suffix cannot have path separators. The files are created with mode 0600.
This should be used for things like a temporary .s that is removed after running the assembler.
Definition at line 863 of file Path.cpp.
References createTemporaryFile(), and FS_File.
Referenced by collectAddressSymbols(), llvm::createGraphFilename(), createTemporaryFile(), getPotentiallyUniqueTempFileName(), llvm::prepareTempFiles(), and llvm::unittest::TempFile::TempFile().
std::error_code llvm::sys::fs::createTemporaryFile | ( | const Twine & | Prefix, |
StringRef | Suffix, | ||
SmallVectorImpl< char > & | ResultPath, | ||
OpenFlags | Flags = OF_None |
||
) |
Simpler version for clients that don't want an open file.
An empty file will still be created.
Definition at line 871 of file Path.cpp.
References createTemporaryFile().
std::error_code llvm::sys::fs::createUniqueDirectory | ( | const Twine & | Prefix, |
SmallVectorImpl< char > & | ResultPath | ||
) |
Definition at line 885 of file Path.cpp.
References createUniqueEntity(), and FS_Dir.
Referenced by llvm::unittest::TempDir::TempDir().
std::error_code llvm::sys::fs::createUniqueFile | ( | const Twine & | Model, |
int & | ResultFD, | ||
SmallVectorImpl< char > & | ResultPath, | ||
OpenFlags | Flags = OF_None , |
||
unsigned | Mode = all_read | all_write |
||
) |
Create a uniquely named file.
Generates a unique path suitable for a temporary file and then opens it as a file. The name is based on Model with '' replaced by a random char in [0-9a-f]. If Model is not an absolute path, the temporary file will be created in the current directory.
Example: clang-%%-%%-%%-%%-%%.s => clang-a0-b1-c2-d3-e4.s
This is an atomic operation. Either the file is created and opened, or the file system is left untouched.
The intended use is for files that are to be kept, possibly after renaming them. For example, when running 'clang -c foo.o', the file can be first created as foo-abc123.o and then renamed.
Model | Name to base unique path off of. |
ResultFD | Set to the opened file's file descriptor. |
ResultPath | Set to the opened file's absolute path. |
Flags | Set to the opened file's flags. |
Mode | Set to the opened file's permissions. |
Definition at line 822 of file Path.cpp.
References createUniqueEntity(), and FS_File.
Referenced by llvm::sys::fs::TempFile::create(), createUniqueFile(), and llvm::LockFileManager::tryLock().
std::error_code llvm::sys::fs::createUniqueFile | ( | const Twine & | Model, |
SmallVectorImpl< char > & | ResultPath, | ||
unsigned | Mode = all_read | all_write |
||
) |
Simpler version for clients that don't want an open file.
An empty file will still be created.
Definition at line 829 of file Path.cpp.
References createUniqueFile(), and OF_None.
void llvm::sys::fs::createUniquePath | ( | const Twine & | Model, |
SmallVectorImpl< char > & | ResultPath, | ||
bool | MakeAbsolute | ||
) |
Create a potentially unique file name but does not create it.
Generates a unique path suitable for a temporary file but does not open or create the file. The name is based on Model with '' replaced by a random char in [0-9a-f]. If MakeAbsolute is true then the system's temp directory is prepended first. If MakeAbsolute is false the current directory will be used instead.
This function does not check if the file exists. If you want to be sure that the file does not yet exist, you should use enough '' characters in your model to ensure this. Each '' gives 4-bits of entropy so you can use 32 of them to get 128 bits of entropy.
Example: clang-%%-%%-%%-%%-%%.s => clang-a0-b1-c2-d3-e4.s
Model | Name to base unique path off of. |
ResultPath | Set to the file's path. |
MakeAbsolute | Whether to use the system temp directory. |
Definition at line 796 of file Path.cpp.
References llvm::sys::path::append(), llvm::sys::Process::GetRandomNumber(), llvm::sys::path::is_absolute(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), llvm::SmallVectorImpl< T >::swap(), and llvm::sys::path::system_temp_directory().
Referenced by createUniqueEntity(), and llvm::DotCfgChangeReporter::handleFunctionCompare().
LLVM_ABI std::error_code llvm::sys::fs::current_path | ( | SmallVectorImpl< char > & | result | ) |
Get the current path.
result | Holds the current path on return. |
Referenced by make_absolute().
LLVM_ABI ErrorOr< space_info > llvm::sys::fs::disk_space | ( | const Twine & | Path | ) |
Get disk space usage information.
Note: Users must be careful about "Time Of Check, Time Of Use" kind of bug. Note: Windows reports results according to the quota allocated to the user.
Path | Input path. |
Referenced by llvm::pruneCache().
Simpler version of equivalent for clients that don't need to differentiate between an error and false.
Definition at line 506 of file FileSystem.h.
References A, B, and equivalent().
LLVM_ABI std::error_code llvm::sys::fs::equivalent | ( | const Twine & | A, |
const Twine & | B, | ||
bool & | result | ||
) |
Do paths represent the same thing?
assert(status_known(A) || status_known(B));
A | Input path A. |
B | Input path B. |
result | Set to true if stat(A) and stat(B) have the same device and inode (or equivalent). |
LLVM_ABI bool llvm::sys::fs::equivalent | ( | file_status | A, |
file_status | B | ||
) |
Do file_status's represent the same thing?
A | Input file_status. |
B | Input file_status. |
assert(status_known(A) || status_known(B));
Referenced by equivalent(), llvm::sys::Process::FindInEnvPath(), and llvm::MachO::shouldSkipSymLink().
bool llvm::sys::fs::exists | ( | const basic_file_status & | status | ) |
Does file exist?
status | A basic_file_status previously returned from stat. |
Definition at line 1077 of file Path.cpp.
References file_not_found, status(), and status_known().
Referenced by llvm::ListeningSocket::createUnix(), llvm::object::BuildIDFetcher::fetch(), llvm::sys::Process::FindInEnvPath(), findInputFile(), getFilename(), is_other(), llvm::pdb::InputFile::open(), llvm::orc::DumpObjects::operator()(), printMarkupStackTrace(), printSymbolizedStackTrace(), searchForObj(), llvm::LockFileManager::tryLock(), and llvm::ThinLTOCodeGenerator::writeGeneratedObject().
Does file exist?
Path | Input path. |
Definition at line 462 of file FileSystem.h.
LLVM_ABI void llvm::sys::fs::expand_tilde | ( | const Twine & | path, |
SmallVectorImpl< char > & | output | ||
) |
Expands ~ expressions to the user's home directory.
On Unix ~user directories are resolved as well.
path | The path to resolve. |
Referenced by llvm::DotCfgChangeReporter::registerCallbacks().
Get file size.
Path | Input path. |
Result | Set to the size of the file in Path. |
Definition at line 691 of file FileSystem.h.
References status().
Referenced by llvm::xray::loadInstrumentationMap(), llvm::xray::loadProfile(), and llvm::xray::loadTraceFile().
Does status represent a directory?
Path | The path to get the type of. |
Follow | For symbolic links, indicates whether to return the file type of the link itself, or of the target. |
Definition at line 1085 of file Path.cpp.
References status(), status_error, and llvm::sys::fs::basic_file_status::type().
Return the path to the main executable, given the value of argv[0] from program startup and the address of main itself.
In extremis, this function may fail and return an empty path.
Referenced by printMarkupStackTrace(), and printSymbolizedStackTrace().
Get file permissions.
Path | File to get permissions from. |
Definition at line 1151 of file Path.cpp.
References status().
Referenced by llvm::FileCollector::copyFiles().
std::error_code llvm::sys::fs::getPotentiallyUniqueFileName | ( | const Twine & | Model, |
SmallVectorImpl< char > & | ResultPath | ||
) |
Get a unique name, not currently exisiting in the filesystem.
Subject to race conditions, prefer to use createUniqueFile instead.
Similar to createUniqueFile, but instead of creating a file only checks if it exists. This function is subject to race conditions, if you want to use the returned name to actually create a file, use createUniqueFile instead.
Definition at line 893 of file Path.cpp.
References createUniqueEntity(), and FS_Name.
std::error_code llvm::sys::fs::getPotentiallyUniqueTempFileName | ( | const Twine & | Prefix, |
StringRef | Suffix, | ||
SmallVectorImpl< char > & | ResultPath | ||
) |
Get a unique temporary file name, not currently exisiting in the filesystem.
Subject to race conditions, prefer to use createTemporaryFile instead.
Similar to createTemporaryFile, but instead of creating a file only checks if it exists. This function is subject to race conditions, if you want to use the returned name to actually create a file, use createTemporaryFile instead.
Definition at line 900 of file Path.cpp.
References createTemporaryFile(), and FS_Name.
Return an open handle to standard error.
On Unix, this is typically FD 2. Returns kInvalidFile when the stream is closed.
Return an open handle to standard in.
On Unix, this is typically FD 0. Returns kInvalidFile when the stream is closed.
Referenced by llvm::MemoryBuffer::getSTDIN().
Return an open handle to standard out.
On Unix, this is typically FD 1. Returns kInvalidFile when the stream is closed.
Get file creation mode mask of the process.
Referenced by llvm::FilePermissionsApplier::apply().
Definition at line 787 of file Path.cpp.
References status().
Referenced by llvm::OpenMPIRBuilder::getTargetEntryUniqueInfo().
bool llvm::sys::fs::is_directory | ( | const basic_file_status & | status | ) |
Does status represent a directory?
status | A basic_file_status previously returned from status. |
Definition at line 1092 of file Path.cpp.
References directory_file, and status().
Referenced by llvm::FileCollectorBase::addDirectory(), llvm::object::MachOObjectFile::findDsymObjectMembers(), is_directory(), is_other(), llvm::pruneCache(), and llvm::ThinLTOCodeGenerator::run().
Simpler version of is_directory for clients that don't need to differentiate between an error and false.
Definition at line 562 of file FileSystem.h.
References is_directory().
Is path a directory?
path | Input path. |
result | Set to true if path is a directory (after following symlinks, false if it is not. Undefined otherwise. |
Definition at line 1096 of file Path.cpp.
References is_directory(), and status().
Simpler version of is_local for clients that don't need to differentiate between an error and false.
Definition at line 525 of file FileSystem.h.
References is_local().
Is the file mounted on a local filesystem?
path | Input path. |
result | Set to true if path is on fixed media such as a hard disk, false if it is not. |
Referenced by is_local().
|
inline |
Simpler version of is_local accepting an open file descriptor for clients that don't need to differentiate between an error and false.
Definition at line 532 of file FileSystem.h.
References is_local().
Version of is_local accepting an open file descriptor.
bool llvm::sys::fs::is_other | ( | const basic_file_status & | status | ) |
Does this status represent something that exists but is not a directory or regular file?
status | A basic_file_status previously returned from status. |
Definition at line 1128 of file Path.cpp.
References exists(), is_directory(), is_regular_file(), and status().
Referenced by is_other().
Is path something that exists but is not a directory, regular file, or symlink?
path | Input path. |
result | Set to true if path exists, but is not a directory, regular file, or a symlink, false if it does not. Undefined otherwise. |
Definition at line 1134 of file Path.cpp.
References is_other(), and status().
bool llvm::sys::fs::is_regular_file | ( | const basic_file_status & | status | ) |
Does status represent a regular file?
status | A basic_file_status previously returned from status. |
Definition at line 1104 of file Path.cpp.
References regular_file, and status().
Referenced by findSrcDirMap(), is_other(), and is_regular_file().
Simpler version of is_regular_file for clients that don't need to differentiate between an error and false.
Definition at line 584 of file FileSystem.h.
References is_regular_file().
Is path a regular file?
path | Input path. |
result | Set to true if path is a regular file (after following symlinks), false if it is not. Undefined otherwise. |
Definition at line 1108 of file Path.cpp.
References is_regular_file(), and status().
bool llvm::sys::fs::is_symlink_file | ( | const basic_file_status & | status | ) |
Does status represent a symlink file?
status | A basic_file_status previously returned from status. |
Definition at line 1116 of file Path.cpp.
References status(), and symlink_file.
Referenced by is_symlink_file().
Simpler version of is_symlink_file for clients that don't need to differentiate between an error and false.
Definition at line 608 of file FileSystem.h.
References is_symlink_file().
Is path a symlink file?
path | Input path. |
result | Set to true if path is a symlink file, false if it is not. Undefined otherwise. |
Definition at line 1120 of file Path.cpp.
References is_symlink_file(), and status().
LLVM_ABI std::error_code llvm::sys::fs::lockFile | ( | int | FD, |
LockKind | Kind = LockKind::Exclusive |
||
) |
Lock the file.
This function acts as tryLockFile but it waits infinitely.
FD | file descriptor to use for locking. |
Kind | of lock to used (exclusive/shared). |
Referenced by llvm::raw_fd_ostream::lock().
void llvm::sys::fs::make_absolute | ( | const Twine & | current_directory, |
SmallVectorImpl< char > & | path | ||
) |
Make path an absolute path.
Makes path absolute using the current_directory if it is not already. An empty path will result in the current_directory.
/absolute/path => /absolute/path relative/../path => <current-directory>/relative/../path
path | A path that is modified to be an absolute path. |
Definition at line 906 of file Path.cpp.
References llvm::sys::path::append(), llvm::StringRef::begin(), llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::StringRef::end(), llvm::sys::path::has_root_directory(), llvm::sys::path::has_root_name(), llvm_unreachable, llvm::sys::path::relative_path(), llvm::sys::path::root_directory(), llvm::sys::path::root_name(), llvm::SmallVectorBase< Size_T >::size(), llvm::SmallVectorImpl< T >::swap(), and llvm::Twine::toVector().
Referenced by llvm::canonicalizePath(), llvm::vfs::RedirectingFileSystem::create(), emitExternalFile(), llvm::AsmPrinter::emitRemarksSection(), findSrcDirMap(), make_absolute(), llvm::MachO::make_relative(), makeAbsolute(), llvm::vfs::FileSystem::makeAbsolute(), llvm::DotCfgChangeReporter::registerCallbacks(), and llvm::LockFileManager::tryLock().
std::error_code llvm::sys::fs::make_absolute | ( | SmallVectorImpl< char > & | path | ) |
Make path an absolute path.
Makes path absolute using the current directory if it is not already. An empty path will result in the current directory.
/absolute/path => /absolute/path relative/../path => <current-directory>/relative/../path
path | A path that is modified to be an absolute path. |
Definition at line 955 of file Path.cpp.
References current_path(), llvm::sys::path::is_absolute(), and make_absolute().
ErrorOr< MD5::MD5Result > llvm::sys::fs::md5_contents | ( | const Twine & | Path | ) |
Version of compute_md5 that doesn't require an open file descriptor.
Definition at line 1067 of file Path.cpp.
References md5_contents(), OF_None, and openFileForRead().
ErrorOr< MD5::MD5Result > llvm::sys::fs::md5_contents | ( | int | FD | ) |
Compute an MD5 hash of a file's contents.
FD | Input file descriptor. |
Definition at line 1047 of file Path.cpp.
References llvm::errnoAsErrorCode(), llvm::MD5::final(), llvm::support::endian::read(), and llvm::MD5::update().
Referenced by md5_contents().
LLVM_ABI std::error_code llvm::sys::fs::openFile | ( | const Twine & | Name, |
int & | ResultFD, | ||
CreationDisposition | Disp, | ||
FileAccess | Access, | ||
OpenFlags | Flags, | ||
unsigned | Mode = 0666 |
||
) |
Opens a file with the specified creation disposition, access mode, and flags and returns a file descriptor.
The caller is responsible for closing the file descriptor once they are finished with it.
Name | The path of the file to open, relative or absolute. |
ResultFD | If the file could be opened successfully, its descriptor is stored in this location. Otherwise, this is set to -1. |
Disp | Value specifying the existing-file behavior. |
Access | Value specifying whether to open the file in read, write, or read-write mode. |
Flags | Additional flags. |
Mode | The access permissions of the file, represented in octal. |
Referenced by openFileForReadWrite(), openFileForWrite(), and prepareDumpIRFileDescriptor().
LLVM_ABI std::error_code llvm::sys::fs::openFileForRead | ( | const Twine & | Name, |
int & | ResultFD, | ||
OpenFlags | Flags = OF_None , |
||
SmallVectorImpl< char > * | RealPath = nullptr |
||
) |
Opens the file with the given name in a read-only mode, returning its open file descriptor.
The caller is responsible for closing the file descriptor once they are finished with it.
Name | The path of the file to open, relative or absolute. |
ResultFD | If the file could be opened successfully, its descriptor is stored in this location. Otherwise, this is set to -1. |
RealPath | If nonnull, extra work is done to determine the real path of the opened file, and that path is stored in this location. |
Referenced by copy_file(), and md5_contents().
|
inline |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor.
If the file does not exist, it is created.
The caller is responsible for closing the file descriptor once they are finished with it.
Name | The path of the file to open, relative or absolute. |
ResultFD | If the file could be opened successfully, its descriptor is stored in this location. Otherwise, this is set to -1. |
Flags | Additional flags used to determine whether the file should be opened in, for example, read-write or in write-only mode. |
Mode | The access permissions of the file, represented in octal. |
Definition at line 1113 of file FileSystem.h.
References FA_Read, FA_Write, Mode, Name, and openFile().
Referenced by createUniqueEntity(), and getFD().
|
inline |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor.
If the file does not exist, it is created.
The caller is responsible for closing the file descriptor once they are finished with it.
Name | The path of the file to open, relative or absolute. |
ResultFD | If the file could be opened successfully, its descriptor is stored in this location. Otherwise, this is set to -1. |
Flags | Additional flags used to determine whether the file should be opened in, for example, read-write or in write-only mode. |
Mode | The access permissions of the file, represented in octal. |
Definition at line 1072 of file FileSystem.h.
References FA_Write, Mode, Name, and openFile().
Referenced by llvm::FilePermissionsApplier::apply(), copy_file(), copyAccessAndModificationTime(), getFD(), llvm::prepareTempFiles(), llvm::unittest::TempFile::TempFile(), and llvm::WriteGraph().
LLVM_ABI Expected< file_t > llvm::sys::fs::openNativeFile | ( | const Twine & | Name, |
CreationDisposition | Disp, | ||
FileAccess | Access, | ||
OpenFlags | Flags, | ||
unsigned | Mode = 0666 |
||
) |
Opens a file with the specified creation disposition, access mode, and flags and returns a platform-specific file object.
The caller is responsible for closing the file object once they are finished with it.
Name | The path of the file to open, relative or absolute. |
Disp | Value specifying the existing-file behavior. |
Access | Value specifying whether to open the file in read, write, or read-write mode. |
Flags | Additional flags. |
Mode | The access permissions of the file, represented in octal. |
Referenced by openNativeFileForReadWrite(), and openNativeFileForWrite().
LLVM_ABI Expected< file_t > llvm::sys::fs::openNativeFileForRead | ( | const Twine & | Name, |
OpenFlags | Flags = OF_None , |
||
SmallVectorImpl< char > * | RealPath = nullptr |
||
) |
Opens the file with the given name in a read-only mode, returning its open file descriptor.
The caller is responsible for closing the freeing the file once they are finished with it.
Name | The path of the file to open, relative or absolute. |
RealPath | If nonnull, extra work is done to determine the real path of the opened file, and that path is stored in this location. |
Referenced by llvm::NewArchiveMember::getFile(), llvm::MemoryBuffer::getFileAsStream(), getFileAux(), llvm::xray::loadInstrumentationMap(), llvm::orc::loadLinkableFile(), llvm::orc::loadMachORelocatableObject(), llvm::xray::loadProfile(), llvm::xray::loadTraceFile(), llvm::localCache(), and llvm::streamFile().
|
inline |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor.
If the file does not exist, it is created.
The caller is responsible for closing the freeing the file once they are finished with it.
Name | The path of the file to open, relative or absolute. |
Flags | Additional flags used to determine whether the file should be opened in, for example, read-write or in write-only mode. |
Mode | The access permissions of the file, represented in octal. |
Definition at line 1133 of file FileSystem.h.
References FA_Read, FA_Write, Mode, Name, and openNativeFile().
Referenced by getReadWriteFile().
|
inline |
Opens the file with the given name in a write-only or read-write mode, returning its open file descriptor.
If the file does not exist, it is created.
The caller is responsible for closing the freeing the file once they are finished with it.
Name | The path of the file to open, relative or absolute. |
Flags | Additional flags used to determine whether the file should be opened in, for example, read-write or in write-only mode. |
Mode | The access permissions of the file, represented in octal. |
Definition at line 1091 of file FileSystem.h.
References FA_Write, Mode, Name, and openNativeFile().
Definition at line 112 of file FileSystem.h.
Definition at line 120 of file FileSystem.h.
|
inline |
Definition at line 944 of file FileSystem.h.
Definition at line 935 of file FileSystem.h.
Definition at line 108 of file FileSystem.h.
|
inline |
Definition at line 948 of file FileSystem.h.
Definition at line 939 of file FileSystem.h.
Definition at line 116 of file FileSystem.h.
Definition at line 124 of file FileSystem.h.
LLVM_ABI Expected< size_t > llvm::sys::fs::readNativeFile | ( | file_t | FileHandle, |
MutableArrayRef< char > | Buf | ||
) |
Reads Buf.size()
bytes from FileHandle
into Buf
.
Returns the number of bytes actually read. On Unix, this is equivalent to return ::read(FD, Buf.data(), Buf.size())
, with error reporting. Returns 0 when reaching EOF.
FileHandle | File to read from. |
Buf | Buffer to read into. |
Referenced by readNativeFileToEOF().
LLVM_ABI Expected< size_t > llvm::sys::fs::readNativeFileSlice | ( | file_t | FileHandle, |
MutableArrayRef< char > | Buf, | ||
uint64_t | Offset | ||
) |
Reads Buf.size()
bytes from FileHandle
at offset Offset
into Buf
.
If 'pread' is available, this will use that, otherwise it will use 'lseek'. Returns the number of bytes actually read. Returns 0 when reaching EOF.
FileHandle | File to read from. |
Buf | Buffer to read into. |
Offset | Offset into the file at which the read should occur. |
Referenced by getOpenFileImpl().
Error llvm::sys::fs::readNativeFileToEOF | ( | file_t | FileHandle, |
SmallVectorImpl< char > & | Buffer, | ||
ssize_t | ChunkSize = DefaultReadChunkSize |
||
) |
Reads from FileHandle
until EOF, appending to Buffer
in chunks of size ChunkSize
.
This calls readNativeFile() in a loop. On Error, previous chunks that were read successfully are left in Buffer
and returned.
Note: For reading the final chunk at EOF, Buffer's
capacity needs extra storage of ChunkSize
.
FileHandle | File to read from. |
Buffer | Where to put the file content. |
ChunkSize | Size of chunks. |
Definition at line 1174 of file Path.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::make_scope_exit(), readNativeFile(), llvm::SmallVectorImpl< T >::resize_for_overwrite(), llvm::SmallVectorBase< Size_T >::size(), Size, llvm::Error::success(), llvm::Expected< T >::takeError(), and llvm::SmallVectorImpl< T >::truncate().
Referenced by getMemoryBufferForStream().
LLVM_ABI std::error_code llvm::sys::fs::real_path | ( | const Twine & | path, |
SmallVectorImpl< char > & | output, | ||
bool | expand_tilde = false |
||
) |
Collapse all .
and .. patterns, resolve all symlinks, and optionally expand ~ expressions to the user's home directory.
path | The path to resolve. |
output | The location to store the resolved path. |
expand_tilde | If true, resolves ~ expressions to the user's home directory. |
Referenced by llvm::dwarf_linker::parallel::CompileUnit::getFileName(), isCaseSensitivePath(), llvm::dwarf_linker::classic::CachedPathResolver::resolve(), and llvm::unittest::TempDir::TempDir().
LLVM_ABI std::error_code llvm::sys::fs::remove | ( | const Twine & | path, |
bool | IgnoreNonExisting = true |
||
) |
Remove path.
Equivalent to POSIX remove().
path | Input path. |
Referenced by cleanUpTempFilesImpl(), llvm::LTOCodeGenerator::compileOptimized(), llvm::sys::fs::TempFile::discard(), ExecGraphViewer(), llvm::DotCfgChangeReporter::handleFunctionCompare(), llvm::sys::fs::TempFile::keep(), llvm::pruneCache(), llvm::FileRemover::setFile(), llvm::LockFileManager::tryLock(), llvm::LockFileManager::unsafeMaybeUnlock(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), llvm::CleanupInstaller::~CleanupInstaller(), llvm::FileRemover::~FileRemover(), llvm::LockFileManager::~LockFileManager(), llvm::unittest::TempFile::~TempFile(), and llvm::unittest::TempLink::~TempLink().
LLVM_ABI std::error_code llvm::sys::fs::remove_directories | ( | const Twine & | path, |
bool | IgnoreErrors = true |
||
) |
Recursively delete a directory.
path | Input path. |
Referenced by llvm::unittest::TempDir::~TempDir().
Rename from to to.
Files are renamed as if by POSIX rename(), except that on Windows there may be a short interval of time during which the destination file does not exist.
from | The path to rename from. |
to | The path to rename to. This is created. |
Referenced by llvm::sys::fs::TempFile::keep().
Resize path to size.
File is resized as if by POSIX truncate().
FD | Input file descriptor. |
Size | Size to resize to. |
Referenced by resize_file_before_mapping_readwrite().
|
inline |
Resize FD
to Size
before mapping mapped_file_region::readwrite.
On non-Windows, this calls resize_file(). On Windows, this is a no-op, since the subsequent mapping (via CreateFileMapping
) automatically extends the file.
Definition at line 417 of file FileSystem.h.
References resize_file(), and Size.
Referenced by createOnDiskBuffer().
Set the current path.
path | The path to set. |
LLVM_ABI std::error_code llvm::sys::fs::setLastAccessAndModificationTime | ( | int | FD, |
TimePoint<> | AccessTime, | ||
TimePoint<> | ModificationTime | ||
) |
Set the file modification and access time.
Referenced by llvm::FilePermissionsApplier::apply(), copyAccessAndModificationTime(), and setLastAccessAndModificationTime().
|
inline |
Simpler version that sets both file modification and access time to the same time.
Definition at line 711 of file FileSystem.h.
References setLastAccessAndModificationTime().
Set file permissions.
Path | File to set permissions on. |
Permissions | New file permissions. |
Referenced by llvm::FilePermissionsApplier::apply(), and llvm::FileCollector::copyFiles().
Vesion of setPermissions accepting a file descriptor.
TODO Delete the path based overload once we implement the FD based overload on Windows.
LLVM_ABI std::error_code llvm::sys::fs::status | ( | const Twine & | path, |
file_status & | result, | ||
bool | follow = true |
||
) |
Get file status as if by POSIX stat().
path | Input path. |
result | Set to the file status. |
follow | When true, follows symlinks. Otherwise, the symlink itself is statted. |
Referenced by llvm::FilePermissionsApplier::apply(), llvm::FileCollector::copyFiles(), llvm::FileOutputBuffer::create(), llvm::FilePermissionsApplier::create(), exists(), file_size(), llvm::object::MachOObjectFile::findDsymObjectMembers(), get_file_type(), llvm::NewArchiveMember::getFile(), getOpenFileImpl(), getPermissions(), getReadWriteFile(), getUniqueID(), llvm::sys::fs::recursive_directory_iterator::increment(), is_directory(), is_other(), is_regular_file(), is_symlink_file(), llvm::pruneCache(), llvm::MachO::shouldSkipSymLink(), and shouldUseMmap().
LLVM_ABI std::error_code llvm::sys::fs::status | ( | int | FD, |
file_status & | Result | ||
) |
A version for when a file descriptor is already available.
bool llvm::sys::fs::status_known | ( | const basic_file_status & | s | ) |
Is status available?
s | Input file status. |
Definition at line 1081 of file Path.cpp.
References status_error, and llvm::sys::fs::basic_file_status::type().
Referenced by exists().
Is status available?
path | Input path. |
result | Set to true if status() != status_error. |
LLVM_ABI std::error_code llvm::sys::fs::tryLockFile | ( | int | FD, |
std::chrono::milliseconds | Timeout = std::chrono::milliseconds(0) , |
||
LockKind | Kind = LockKind::Exclusive |
||
) |
Try to locks the file during the specified time.
This function implements advisory locking on entire file. If it returns errc::success, the file is locked by the calling process. Until the process unlocks the file by calling unlockFile, all attempts to lock the same file will fail/block. The process that locked the file may assume that none of other processes read or write this file, provided that all processes lock the file prior to accessing its content.
FD | The descriptor representing the file to lock. |
Timeout | Time in milliseconds that the process should wait before reporting lock failure. Zero value means try to get lock only once. |
Kind | The kind of the lock used (exclusive/shared). |
Referenced by llvm::raw_fd_ostream::tryLockFor().
LLVM_ABI std::error_code llvm::sys::fs::unlockFile | ( | int | FD | ) |
Unlock the file.
FD | The descriptor representing the file to unlock. |
Referenced by llvm::sys::fs::FileLocker::unlock(), and llvm::sys::fs::FileLocker::~FileLocker().
Referenced by llvm::NewArchiveMember::getFile().