LLVM
8.0.1
|
Namespaces | |
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 | 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 | file_type { file_type::status_error, file_type::file_not_found, file_type::regular_file, file_type::directory_file, file_type::symlink_file, file_type::block_file, file_type::character_file, file_type::fifo_file, file_type::socket_file, file_type::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 | createUniqueFile (const Twine &Model, int &ResultFd, SmallVectorImpl< char > &ResultPath, unsigned Mode, OpenFlags Flags) |
static std::error_code | createTemporaryFile (const Twine &Model, int &ResultFD, llvm::SmallVectorImpl< char > &ResultPath, FSEntity Type) |
static std::error_code | createTemporaryFile (const Twine &Prefix, StringRef Suffix, int &ResultFD, llvm::SmallVectorImpl< char > &ResultPath, FSEntity Type) |
static std::error_code | copy_file_internal (int ReadFD, int WriteFD) |
Physical Operators | |
void | make_absolute (const Twine ¤t_directory, SmallVectorImpl< char > &path) |
Make path an absolute path. More... | |
std::error_code | make_absolute (SmallVectorImpl< char > &path) |
Make path an absolute path. More... | |
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. More... | |
std::error_code | create_directory (const Twine &path, bool IgnoreExisting=true, perms Perms=owner_all|group_all) |
Create the directory in path. More... | |
std::error_code | create_link (const Twine &to, const Twine &from) |
Create a link from from to to. More... | |
std::error_code | create_hard_link (const Twine &to, const Twine &from) |
Create a hard link from from to to, or return an error. More... | |
std::error_code | real_path (const Twine &path, SmallVectorImpl< char > &output, bool expand_tilde=false) |
Collapse all . More... | |
void | expand_tilde (const Twine &path, SmallVectorImpl< char > &output) |
Expands ~ expressions to the user's home directory. More... | |
std::error_code | current_path (SmallVectorImpl< char > &result) |
Get the current path. More... | |
std::error_code | set_current_path (const Twine &path) |
Set the current path. More... | |
std::error_code | remove (const Twine &path, bool IgnoreNonExisting=true) |
Remove path. More... | |
std::error_code | remove_directories (const Twine &path, bool IgnoreErrors=true) |
Recursively delete a directory. More... | |
std::error_code | rename (const Twine &from, const Twine &to) |
Rename from to to. More... | |
std::error_code | copy_file (const Twine &From, const Twine &To) |
Copy the contents of From to To. More... | |
std::error_code | copy_file (const Twine &From, int ToFD) |
Copy the contents of From to To. More... | |
std::error_code | resize_file (int FD, uint64_t Size) |
Resize path to size. More... | |
ErrorOr< MD5::MD5Result > | md5_contents (int FD) |
Compute an MD5 hash of a file's contents. More... | |
ErrorOr< MD5::MD5Result > | md5_contents (const Twine &Path) |
Version of compute_md5 that doesn't require an open file descriptor. More... | |
Variables | |
const file_t | kInvalidFile |
Physical Observers | |
enum | AccessMode { AccessMode::Exist, AccessMode::Write, AccessMode::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, F_None = 0, OF_Text = 1, F_Text = 1, OF_Append = 2, F_Append = 2, OF_Delete = 4, OF_ChildInherit = 8, OF_UpdateAtime = 16 } |
bool | exists (const basic_file_status &status) |
Does file exist? More... | |
std::error_code | access (const Twine &Path, AccessMode Mode) |
Can the file be accessed? More... | |
bool | exists (const Twine &Path) |
Does file exist? More... | |
bool | can_execute (const Twine &Path) |
Can we execute this file? More... | |
bool | can_write (const Twine &Path) |
Can we write this file? More... | |
bool | equivalent (file_status A, file_status B) |
Do file_status's represent the same thing? More... | |
std::error_code | equivalent (const Twine &A, const Twine &B, bool &result) |
Do paths represent the same thing? More... | |
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. More... | |
std::error_code | is_local (const Twine &path, bool &result) |
Is the file mounted on a local filesystem? More... | |
std::error_code | is_local (int FD, bool &result) |
Version of is_local accepting an open file descriptor. More... | |
bool | is_local (const Twine &Path) |
Simpler version of is_local for clients that don't need to differentiate between an error and false. More... | |
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. More... | |
file_type | get_file_type (const Twine &Path, bool Follow=true) |
Does status represent a directory? More... | |
bool | is_directory (const basic_file_status &status) |
Does status represent a directory? More... | |
std::error_code | is_directory (const Twine &path, bool &result) |
Is path a directory? More... | |
bool | is_directory (const Twine &Path) |
Simpler version of is_directory for clients that don't need to differentiate between an error and false. More... | |
bool | is_regular_file (const basic_file_status &status) |
Does status represent a regular file? More... | |
std::error_code | is_regular_file (const Twine &path, bool &result) |
Is path a regular file? More... | |
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. More... | |
bool | is_symlink_file (const basic_file_status &status) |
Does status represent a symlink file? More... | |
std::error_code | is_symlink_file (const Twine &path, bool &result) |
Is path a symlink file? More... | |
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. More... | |
bool | is_other (const basic_file_status &status) |
Does this status represent something that exists but is not a directory or regular file? More... | |
std::error_code | is_other (const Twine &path, bool &result) |
Is path something that exists but is not a directory, regular file, or symlink? More... | |
std::error_code | status (const Twine &path, file_status &result, bool follow=true) |
Get file status as if by POSIX stat(). More... | |
std::error_code | status (int FD, file_status &Result) |
A version for when a file descriptor is already available. More... | |
std::error_code | setPermissions (const Twine &Path, perms Permissions) |
Set file permissions. More... | |
ErrorOr< perms > | getPermissions (const Twine &Path) |
Get file permissions. More... | |
std::error_code | file_size (const Twine &Path, uint64_t &Result) |
Get file size. More... | |
std::error_code | setLastAccessAndModificationTime (int FD, TimePoint<> AccessTime, TimePoint<> ModificationTime) |
Set the file modification and access time. More... | |
std::error_code | setLastAccessAndModificationTime (int FD, TimePoint<> Time) |
Simpler version that sets both file modification and access time to the same time. More... | |
bool | status_known (const basic_file_status &s) |
Is status available? More... | |
std::error_code | status_known (const Twine &path, bool &result) |
Is status available? More... | |
std::error_code | createUniqueFile (const Twine &Model, int &ResultFD, SmallVectorImpl< char > &ResultPath, unsigned Mode=all_read|all_write) |
Create a uniquely named file. More... | |
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. More... | |
std::error_code | createTemporaryFile (const Twine &Prefix, StringRef Suffix, int &ResultFD, SmallVectorImpl< char > &ResultPath) |
Create a file in the system temporary directory. More... | |
std::error_code | createTemporaryFile (const Twine &Prefix, StringRef Suffix, SmallVectorImpl< char > &ResultPath) |
Simpler version for clients that don't want an open file. More... | |
std::error_code | createUniqueDirectory (const Twine &Prefix, SmallVectorImpl< char > &ResultPath) |
std::error_code | getPotentiallyUniqueFileName (const Twine &Model, SmallVectorImpl< char > &ResultPath) |
Get a unique name, not currently exisiting in the filesystem. More... | |
std::error_code | getPotentiallyUniqueTempFileName (const Twine &Prefix, StringRef Suffix, SmallVectorImpl< char > &ResultPath) |
Get a unique temporary file name, not currently exisiting in the filesystem. More... | |
OpenFlags | operator| (OpenFlags A, OpenFlags B) |
OpenFlags & | operator|= (OpenFlags &A, OpenFlags B) |
FileAccess | operator| (FileAccess A, FileAccess B) |
FileAccess & | operator|= (FileAccess &A, FileAccess B) |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | closeFile (file_t &F) |
Close the file object. More... | |
std::error_code | getUniqueID (const Twine Path, UniqueID &Result) |
ErrorOr< space_info > | disk_space (const Twine &Path) |
Get disk space usage information. More... | |
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. More... | |
using llvm::sys::fs::file_t = typedef int |
Definition at line 61 of file FileSystem.h.
|
strong |
Enumerator | |
---|---|
Exist | |
Write | |
Execute |
Definition at line 456 of file FileSystem.h.
Definition at line 717 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 67 of file FileSystem.h.
Enumerator | |
---|---|
FA_Read | |
FA_Write |
Definition at line 739 of file FileSystem.h.
enum llvm::sys::fs::OpenFlags : unsigned |
Definition at line 744 of file FileSystem.h.
enum llvm::sys::fs::perms |
Definition at line 87 of file FileSystem.h.
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(), llvm::pdb::DIARawSymbol::dump(), exists(), GetSymbolRef(), and llvm::LockFileManager::waitForUnlock().
Can we execute this file?
Path | Input path. |
Referenced by exists().
Can we write this file?
Path | Input path. |
Definition at line 483 of file FileSystem.h.
References access(), B, equivalent(), and Write.
void llvm::sys::fs::closeFile | ( | file_t & | F | ) |
Close the file object.
This should be used instead of ::close for portability.
F | On input, this is the file to close. On output, the file is set to kInvalidFile. |
Referenced by openNativeFileForReadWrite().
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 962 of file Path.cpp.
References CD_CreateAlways, copy_file_internal(), OF_None, openFileForRead(), and openFileForWrite().
Referenced by createOnDiskBuffer(), llvm::sys::fs::file_status::file_status(), and llvm::sys::fs::TempFile::keep().
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 980 of file Path.cpp.
References copy_file_internal(), OF_None, and openFileForRead().
|
static |
Definition at line 938 of file Path.cpp.
References llvm::support::endian::read(), and llvm::support::endian::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 914 of file Path.cpp.
References create_directory(), llvm::StringRef::empty(), llvm::no_such_file_or_directory, P, llvm::sys::path::parent_path(), and llvm::Twine::toStringRef().
Referenced by llvm::sys::fs::file_status::file_status(), llvm::lto::getThinLTOOutputFile(), llvm::lto::localCache(), and llvm::ThinLTOCodeGenerator::run().
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::sys::fs::file_status::file_status().
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::sys::fs::file_status::file_status().
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::sys::fs::file_status::file_status(), and llvm::LockFileManager::LockFileManager().
|
static |
Definition at line 792 of file Path.cpp.
References assert(), llvm::StringRef::begin(), createUniqueEntity(), llvm::StringRef::find_first_of(), llvm::support::native, llvm::StringRef::npos, owner_read, owner_write, P, and llvm::Twine::toNullTerminatedStringRef().
|
static |
Definition at line 804 of file Path.cpp.
References llvm::StringRef::empty().
Referenced by createTemporaryFile(), and getPotentiallyUniqueTempFileName().
std::error_code llvm::sys::fs::createTemporaryFile | ( | const Twine & | Prefix, |
StringRef | Suffix, | ||
int & | ResultFD, | ||
SmallVectorImpl< char > & | ResultPath | ||
) |
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 811 of file Path.cpp.
References createTemporaryFile(), and FS_File.
Referenced by llvm::createGraphFilename(), printSymbolizedStackTrace(), and llvm::LTOCodeGenerator::writeMergedModules().
std::error_code llvm::sys::fs::createTemporaryFile | ( | const Twine & | Prefix, |
StringRef | Suffix, | ||
SmallVectorImpl< char > & | ResultPath | ||
) |
Simpler version for clients that don't want an open file.
An empty file will still be created.
Definition at line 817 of file Path.cpp.
References createTemporaryFile().
std::error_code llvm::sys::fs::createUniqueDirectory | ( | const Twine & | Prefix, |
SmallVectorImpl< char > & | ResultPath | ||
) |
Definition at line 831 of file Path.cpp.
References createUniqueEntity(), llvm::NVPTXISD::Dummy, and FS_Dir.
|
static |
Definition at line 772 of file Path.cpp.
References createUniqueEntity(), and FS_File.
Referenced by llvm::sys::fs::TempFile::create(), and createUniqueFile().
std::error_code llvm::sys::fs::createUniqueFile | ( | const Twine & | Model, |
int & | ResultFD, | ||
SmallVectorImpl< char > & | ResultPath, | ||
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. |
Definition at line 766 of file Path.cpp.
References createUniqueEntity(), and FS_File.
Referenced by llvm::LockFileManager::LockFileManager().
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 779 of file Path.cpp.
References createUniqueFile().
std::error_code llvm::sys::fs::current_path | ( | SmallVectorImpl< char > & | result | ) |
Get the current path.
result | Holds the current path on return. |
Referenced by ExpandResponseFile(), llvm::sys::fs::file_status::file_status(), make_absolute(), and pathHasTraversal().
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 openNativeFileForReadWrite(), and llvm::pruneCache().
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 can_write(), equivalent(), and llvm::sys::Process::FindInEnvPath().
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). |
Simpler version of equivalent for clients that don't need to differentiate between an error and false.
Definition at line 512 of file FileSystem.h.
References equivalent(), and is_local().
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 1022 of file Path.cpp.
References status_known(), and llvm::sys::fs::basic_file_status::type().
Referenced by llvm::sys::fs::file_status::file_status(), llvm::sys::Process::FindInEnvPath(), findInputFile(), getFilename(), is_other(), llvm::LockFileManager::LockFileManager(), llvm::LockFileManager::waitForUnlock(), and writeGeneratedObject().
Does file exist?
Path | Input path. |
Definition at line 469 of file FileSystem.h.
References access(), can_execute(), and Exist.
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::sys::fs::file_status::file_status().
Get file size.
Path | Input path. |
Result | Set to the size of the file in Path. |
Definition at line 679 of file FileSystem.h.
References llvm::sys::fs::basic_file_status::getSize(), setLastAccessAndModificationTime(), and 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 1030 of file Path.cpp.
References status(), and llvm::sys::fs::basic_file_status::type().
Referenced by is_local().
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 printSymbolizedStackTrace().
Get file permissions.
Path | File to get permissions from. |
Definition at line 1096 of file Path.cpp.
References Name, llvm::sys::fs::basic_file_status::permissions(), and status().
Referenced by is_symlink_file().
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 839 of file Path.cpp.
References createUniqueEntity(), llvm::NVPTXISD::Dummy, 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 846 of file Path.cpp.
References createTemporaryFile(), llvm::NVPTXISD::Dummy, and FS_Name.
Definition at line 757 of file Path.cpp.
References llvm::sys::fs::file_status::getUniqueID(), and status().
Referenced by llvm::sys::fs::file_status::file_status(), and openNativeFileForReadWrite().
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 1037 of file Path.cpp.
References llvm::sys::fs::basic_file_status::type().
Referenced by is_directory(), is_local(), is_other(), llvm::pruneCache(), and llvm::ThinLTOCodeGenerator::run().
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 1041 of file Path.cpp.
References is_directory(), and status().
Simpler version of is_directory for clients that don't need to differentiate between an error and false.
Definition at line 568 of file FileSystem.h.
References is_directory(), and is_regular_file().
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 equivalent(), is_local(), and pathHasTraversal().
std::error_code llvm::sys::fs::is_local | ( | int | FD, |
bool & | result | ||
) |
Version of is_local accepting an open file descriptor.
Simpler version of is_local for clients that don't need to differentiate between an error and false.
Definition at line 531 of file FileSystem.h.
References 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 538 of file FileSystem.h.
References get_file_type(), is_directory(), and is_local().
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 1073 of file Path.cpp.
References exists(), is_directory(), and is_regular_file().
Referenced by is_other(), and is_symlink_file().
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 1079 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 1049 of file Path.cpp.
References llvm::sys::fs::basic_file_status::type().
Referenced by findSrcDirMap(), is_directory(), is_other(), and 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 1053 of file Path.cpp.
References is_regular_file(), and status().
Simpler version of is_regular_file for clients that don't need to differentiate between an error and false.
Definition at line 590 of file FileSystem.h.
References is_regular_file(), and is_symlink_file().
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 1061 of file Path.cpp.
References llvm::sys::fs::basic_file_status::type().
Referenced by is_regular_file(), and 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 1065 of file Path.cpp.
References is_symlink_file(), and status().
Simpler version of is_symlink_file for clients that don't need to differentiate between an error and false.
Definition at line 614 of file FileSystem.h.
References getPermissions(), is_other(), is_symlink_file(), setPermissions(), and status().
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 852 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::support::native, llvm::sys::path::relative_path(), llvm::sys::path::root_directory(), llvm::sys::path::root_name(), llvm::SmallVectorBase::size(), llvm::SmallVectorImpl< T >::swap(), and llvm::Twine::toVector().
Referenced by llvm::vfs::RedirectingFileSystem::create(), llvm::sys::fs::file_status::file_status(), findSrcDirMap(), llvm::LockFileManager::LockFileManager(), make_absolute(), and llvm::vfs::FileSystem::makeAbsolute().
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 902 of file Path.cpp.
References current_path(), llvm::sys::path::is_absolute(), and make_absolute().
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 992 of file Path.cpp.
References llvm::MD5::final(), llvm::makeArrayRef(), llvm::support::endian::read(), and llvm::MD5::update().
Referenced by llvm::sys::fs::file_status::file_status(), and md5_contents().
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 1012 of file Path.cpp.
References md5_contents(), OF_None, and openFileForRead().
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 operator|=().
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(), llvm::vfs::FileSystem::getBufferForFile(), llvm::NewArchiveMember::getFile(), llvm::MemoryBuffer::getFileAsStream(), getFileAux(), llvm::xray::loadInstrumentationMap(), llvm::xray::loadProfile(), llvm::xray::loadTraceFile(), llvm::lto::localCache(), md5_contents(), openNativeFileForReadWrite(), pathHasTraversal(), and llvm::vfs::InMemoryFileSystem::useNormalizedPaths().
|
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 992 of file FileSystem.h.
References FA_Read, FA_Write, and openFile().
Referenced by createUniqueEntity(), getFD(), and 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 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 951 of file FileSystem.h.
References FA_Write, and openFile().
Referenced by copy_file(), llvm::TarWriter::create(), getFD(), and llvm::WriteGraph().
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(), openNativeFileForWrite(), and operator|=().
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 openNativeFileForReadWrite().
|
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 1012 of file FileSystem.h.
References closeFile(), disk_space(), F(), FA_Read, FA_Write, getUniqueID(), OF_None, openFileForRead(), openNativeFile(), and openNativeFileForRead().
|
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 970 of file FileSystem.h.
References FA_Write, and openNativeFile().
Definition at line 117 of file FileSystem.h.
Definition at line 125 of file FileSystem.h.
Definition at line 113 of file FileSystem.h.
Definition at line 879 of file FileSystem.h.
|
inline |
Definition at line 888 of file FileSystem.h.
Definition at line 121 of file FileSystem.h.
Definition at line 883 of file FileSystem.h.
References B.
|
inline |
Definition at line 892 of file FileSystem.h.
References B, Name, openFile(), and openNativeFile().
Definition at line 129 of file FileSystem.h.
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::sys::fs::file_status::file_status(), and pathHasTraversal().
Remove path.
Equivalent to POSIX remove().
path | Input path. |
Referenced by llvm::LTOCodeGenerator::compileOptimized(), llvm::MachineRegisterInfo::disableCalleeSavedRegister(), llvm::sys::fs::TempFile::discard(), EliminateBlockCases(), ExecGraphViewer(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), getHostID(), isDebug(), isFuncOrderCorrect(), isTerminalReg(), llvm::LockFileManager::LockFileManager(), llvm::LPPassManager::markLoopAsDeleted(), llvm::pruneCache(), llvm::simple_ilist< MachineInstr, Options... >::remove(), RemoveFromWorklist(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FileRemover::setFile(), llvm::UnrollLoop(), llvm::LockFileManager::unsafeRemoveLockFile(), writeGeneratedObject(), llvm::LTOCodeGenerator::writeMergedModules(), llvm::FileRemover::~FileRemover(), and llvm::LockFileManager::~LockFileManager().
Recursively delete a directory.
path | Input path. |
Referenced by llvm::sys::fs::file_status::file_status().
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::file_status::file_status().
std::error_code llvm::sys::fs::resize_file | ( | int | FD, |
uint64_t | Size | ||
) |
Resize path to size.
File is resized as if by POSIX truncate().
FD | Input file descriptor. |
Size | Size to resize to. |
Referenced by createOnDiskBuffer(), and llvm::sys::fs::file_status::file_status().
Set the current path.
path | The path to set. |
Referenced by llvm::sys::fs::file_status::file_status(), and pathHasTraversal().
std::error_code llvm::sys::fs::setLastAccessAndModificationTime | ( | int | FD, |
TimePoint<> | AccessTime, | ||
TimePoint<> | ModificationTime | ||
) |
Set the file modification and access time.
Referenced by file_size(), and setLastAccessAndModificationTime().
|
inline |
Simpler version that sets both file modification and access time to the same time.
Definition at line 698 of file FileSystem.h.
References setLastAccessAndModificationTime(), and status_known().
Set file permissions.
Path | File to set permissions on. |
Permissions | New file permissions. |
Referenced by is_symlink_file().
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::canConstantFoldCallTo(), llvm::detail::IEEEFloat::convertFromSignExtendedInteger(), llvm::APFloat::convertToInteger(), llvm::FileOutputBuffer::create(), DecodeJMPL(), DecodeMem(), DecodeReturn(), DecodeSWAP(), DecodeTRAP(), llvm::symbolize::LLVMSymbolizer::DemangleName(), llvm::vfs::FileSystem::exists(), file_size(), llvm::sys::fs::file_status::file_status(), get_file_type(), llvm::NewArchiveMember::getFile(), llvm::vfs::File::getName(), getOpenFileImpl(), getPermissions(), getReadWriteFile(), getUniqueID(), is_directory(), is_other(), is_regular_file(), is_symlink_file(), llvm::sys::fs::directory_entry::path(), pathHasTraversal(), llvm::pruneCache(), llvm::raw_fd_ostream::raw_fd_ostream(), shouldUseMmap(), llvm::sys::fs::directory_entry::type(), llvm::vfs::InMemoryFileSystem::useNormalizedPaths(), and llvm::detail::IEEEFloat::~IEEEFloat().
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 1026 of file Path.cpp.
References llvm::sys::fs::basic_file_status::type().
Referenced by exists(), and setLastAccessAndModificationTime().
Is status available?
path | Input path. |
result | Set to true if status() != status_error. |