LLVM 20.0.0git
|
A raw_ostream that writes to a file descriptor. More...
#include "llvm/Support/raw_ostream.h"
Public Member Functions | |
raw_fd_ostream (StringRef Filename, std::error_code &EC) | |
Open the specified file for writing. | |
raw_fd_ostream (StringRef Filename, std::error_code &EC, sys::fs::CreationDisposition Disp) | |
raw_fd_ostream (StringRef Filename, std::error_code &EC, sys::fs::FileAccess Access) | |
raw_fd_ostream (StringRef Filename, std::error_code &EC, sys::fs::OpenFlags Flags) | |
raw_fd_ostream (StringRef Filename, std::error_code &EC, sys::fs::CreationDisposition Disp, sys::fs::FileAccess Access, sys::fs::OpenFlags Flags) | |
raw_fd_ostream (int fd, bool shouldClose, bool unbuffered=false, OStreamKind K=OStreamKind::OK_OStream) | |
FD is the file descriptor that this writes to. | |
~raw_fd_ostream () override | |
void | close () |
Manually flush the stream and close the file. | |
bool | supportsSeeking () const |
bool | isRegularFile () const |
uint64_t | seek (uint64_t off) |
Flushes the stream and repositions the underlying file descriptor position to the offset specified from the beginning of the file. | |
bool | is_displayed () const override |
This function determines if this stream is connected to a "tty" or "console" window. | |
bool | has_colors () const override |
This function determines if this stream is displayed and supports colors. | |
void | tie (raw_ostream *TieTo) |
Tie this stream to the specified stream. | |
std::error_code | error () const |
bool | has_error () const |
Return the value of the flag in this raw_fd_ostream indicating whether an output error has been encountered. | |
void | clear_error () |
Set the flag read by has_error() to false. | |
Expected< sys::fs::FileLocker > | lock () |
Locks the underlying file. | |
Expected< sys::fs::FileLocker > | tryLockFor (Duration const &Timeout) |
Tries to lock the underlying file within the specified period. | |
Public Member Functions inherited from llvm::raw_pwrite_stream | |
raw_pwrite_stream (bool Unbuffered=false, OStreamKind K=OStreamKind::OK_OStream) | |
void | pwrite (const char *Ptr, size_t Size, uint64_t Offset) |
Public Member Functions inherited from llvm::raw_ostream | |
raw_ostream (bool unbuffered=false, OStreamKind K=OStreamKind::OK_OStream) | |
raw_ostream (const raw_ostream &)=delete | |
void | operator= (const raw_ostream &)=delete |
virtual | ~raw_ostream () |
uint64_t | tell () const |
tell - Return the current offset with the file. | |
OStreamKind | get_kind () const |
virtual void | reserveExtraSpace (uint64_t ExtraSize) |
If possible, pre-allocate ExtraSize bytes for stream data. | |
void | SetBuffered () |
Set the stream to be buffered, with an automatically determined buffer size. | |
void | SetBufferSize (size_t Size) |
Set the stream to be buffered, using the specified buffer size. | |
size_t | GetBufferSize () const |
void | SetUnbuffered () |
Set the stream to be unbuffered. | |
size_t | GetNumBytesInBuffer () const |
void | flush () |
raw_ostream & | operator<< (char C) |
raw_ostream & | operator<< (unsigned char C) |
raw_ostream & | operator<< (signed char C) |
raw_ostream & | operator<< (StringRef Str) |
raw_ostream & | operator<< (const char *Str) |
raw_ostream & | operator<< (const std::string &Str) |
raw_ostream & | operator<< (const std::string_view &Str) |
raw_ostream & | operator<< (const SmallVectorImpl< char > &Str) |
raw_ostream & | operator<< (unsigned long N) |
raw_ostream & | operator<< (long N) |
raw_ostream & | operator<< (unsigned long long N) |
raw_ostream & | operator<< (long long N) |
raw_ostream & | operator<< (const void *P) |
raw_ostream & | operator<< (unsigned int N) |
raw_ostream & | operator<< (int N) |
raw_ostream & | operator<< (double N) |
raw_ostream & | write_hex (unsigned long long N) |
Output N in hexadecimal, without any prefix or padding. | |
raw_ostream & | operator<< (Colors C) |
raw_ostream & | write_uuid (const uuid_t UUID) |
raw_ostream & | write_escaped (StringRef Str, bool UseHexEscapes=false) |
Output Str , turning '\', '\t', '', '"', and anything that doesn't satisfy llvm::isPrint into an escape sequence. | |
raw_ostream & | write (unsigned char C) |
raw_ostream & | write (const char *Ptr, size_t Size) |
raw_ostream & | operator<< (const format_object_base &Fmt) |
raw_ostream & | operator<< (const FormattedString &) |
raw_ostream & | operator<< (const FormattedNumber &) |
raw_ostream & | operator<< (const formatv_object_base &) |
raw_ostream & | operator<< (const FormattedBytes &) |
raw_ostream & | indent (unsigned NumSpaces) |
indent - Insert 'NumSpaces' spaces. | |
raw_ostream & | write_zeros (unsigned NumZeros) |
write_zeros - Insert 'NumZeros' nulls. | |
virtual raw_ostream & | changeColor (enum Colors Color, bool Bold=false, bool BG=false) |
Changes the foreground color of text that will be output from this point forward. | |
virtual raw_ostream & | resetColor () |
Resets the colors to terminal defaults. | |
virtual raw_ostream & | reverseColor () |
Reverses the foreground and background colors. | |
virtual bool | is_displayed () const |
This function determines if this stream is connected to a "tty" or "console" window. | |
virtual bool | has_colors () const |
This function determines if this stream is displayed and supports colors. | |
virtual void | enable_colors (bool enable) |
bool | colors_enabled () const |
Protected Member Functions | |
void | error_detected (std::error_code EC) |
Set the flag indicating that an output error has been encountered. | |
int | get_fd () const |
Return the file descriptor. | |
void | inc_pos (uint64_t Delta) |
Protected Member Functions inherited from llvm::raw_ostream | |
void | SetBuffer (char *BufferStart, size_t Size) |
Use the provided buffer as the raw_ostream buffer. | |
virtual size_t | preferred_buffer_size () const |
Return an efficient buffer size for the underlying output mechanism. | |
const char * | getBufferStart () const |
Return the beginning of the current stream buffer, or 0 if the stream is unbuffered. | |
Additional Inherited Members | |
Public Types inherited from llvm::raw_ostream | |
enum class | OStreamKind { OK_OStream , OK_FDStream , OK_SVecStream } |
enum class | Colors { BLACK = 0 , RED , GREEN , YELLOW , BLUE , MAGENTA , CYAN , WHITE , BRIGHT_BLACK , BRIGHT_RED , BRIGHT_GREEN , BRIGHT_YELLOW , BRIGHT_BLUE , BRIGHT_MAGENTA , BRIGHT_CYAN , BRIGHT_WHITE , SAVEDCOLOR , RESET } |
using | uuid_t = uint8_t[16] |
Output a formatted UUID with dash separators. | |
Static Public Attributes inherited from llvm::raw_ostream | |
static constexpr Colors | BLACK = Colors::BLACK |
static constexpr Colors | RED = Colors::RED |
static constexpr Colors | GREEN = Colors::GREEN |
static constexpr Colors | YELLOW = Colors::YELLOW |
static constexpr Colors | BLUE = Colors::BLUE |
static constexpr Colors | MAGENTA = Colors::MAGENTA |
static constexpr Colors | CYAN = Colors::CYAN |
static constexpr Colors | WHITE = Colors::WHITE |
static constexpr Colors | BRIGHT_BLACK = Colors::BRIGHT_BLACK |
static constexpr Colors | BRIGHT_RED = Colors::BRIGHT_RED |
static constexpr Colors | BRIGHT_GREEN = Colors::BRIGHT_GREEN |
static constexpr Colors | BRIGHT_YELLOW = Colors::BRIGHT_YELLOW |
static constexpr Colors | BRIGHT_BLUE = Colors::BRIGHT_BLUE |
static constexpr Colors | BRIGHT_MAGENTA = Colors::BRIGHT_MAGENTA |
static constexpr Colors | BRIGHT_CYAN = Colors::BRIGHT_CYAN |
static constexpr Colors | BRIGHT_WHITE = Colors::BRIGHT_WHITE |
static constexpr Colors | SAVEDCOLOR = Colors::SAVEDCOLOR |
static constexpr Colors | RESET = Colors::RESET |
A raw_ostream that writes to a file descriptor.
Definition at line 460 of file raw_ostream.h.
raw_fd_ostream::raw_fd_ostream | ( | StringRef | Filename, |
std::error_code & | EC | ||
) |
Open the specified file for writing.
If an error occurs, information about the error is put into EC, and the stream should be immediately destroyed; Flags
allows optional flags to control how the file will be opened.
As a special case, if Filename is "-", then the stream will use STDOUT_FILENO instead of opening a file. This will not close the stdout descriptor.
Definition at line 593 of file raw_ostream.cpp.
raw_fd_ostream::raw_fd_ostream | ( | StringRef | Filename, |
std::error_code & | EC, | ||
sys::fs::CreationDisposition | Disp | ||
) |
Definition at line 597 of file raw_ostream.cpp.
raw_fd_ostream::raw_fd_ostream | ( | StringRef | Filename, |
std::error_code & | EC, | ||
sys::fs::FileAccess | Access | ||
) |
Definition at line 601 of file raw_ostream.cpp.
raw_fd_ostream::raw_fd_ostream | ( | StringRef | Filename, |
std::error_code & | EC, | ||
sys::fs::OpenFlags | Flags | ||
) |
Definition at line 606 of file raw_ostream.cpp.
raw_fd_ostream::raw_fd_ostream | ( | StringRef | Filename, |
std::error_code & | EC, | ||
sys::fs::CreationDisposition | Disp, | ||
sys::fs::FileAccess | Access, | ||
sys::fs::OpenFlags | Flags | ||
) |
Definition at line 611 of file raw_ostream.cpp.
raw_fd_ostream::raw_fd_ostream | ( | int | fd, |
bool | shouldClose, | ||
bool | unbuffered = false , |
||
OStreamKind | K = OStreamKind::OK_OStream |
||
) |
FD is the file descriptor that this writes to.
If ShouldClose is true, this closes the file when the stream is destroyed. If FD is for stdout or stderr, it will not be closed.
If ShouldClose is true, this closes the file when the stream is destroyed.
Definition at line 619 of file raw_ostream.cpp.
References llvm::raw_ostream::enable_colors(), and llvm::sys::fs::regular_file.
|
override |
Definition at line 661 of file raw_ostream.cpp.
References error(), error_detected(), llvm::raw_ostream::flush(), has_error(), llvm::report_fatal_error(), and llvm::sys::Process::SafelyCloseFileDescriptor().
|
inline |
Set the flag read by has_error() to false.
If the error flag is set at the time when this raw_ostream's destructor is called, report_fatal_error is called to report the error. Use clear_error() after handling the error to avoid this behavior.
"Errors should never pass silently. Unless explicitly silenced."
Definition at line 573 of file raw_ostream.h.
Referenced by llvm::LockFileManager::LockFileManager(), and llvm::LTOCodeGenerator::writeMergedModules().
void raw_fd_ostream::close | ( | ) |
Manually flush the stream and close the file.
Note that this does not call fsync.
Definition at line 806 of file raw_ostream.cpp.
References assert(), error_detected(), llvm::raw_ostream::flush(), and llvm::sys::Process::SafelyCloseFileDescriptor().
Referenced by LLVMPrintModuleToFile(), llvm::LockFileManager::LockFileManager(), and llvm::LTOCodeGenerator::writeMergedModules().
|
inline |
Definition at line 556 of file raw_ostream.h.
Referenced by LLVMPrintModuleToFile(), llvm::LockFileManager::LockFileManager(), llvm::LTOCodeGenerator::writeMergedModules(), and ~raw_fd_ostream().
|
inlineprotected |
Set the flag indicating that an output error has been encountered.
Definition at line 497 of file raw_ostream.h.
Referenced by close(), llvm::raw_fd_stream::read(), llvm::raw_socket_stream::read(), seek(), and ~raw_fd_ostream().
|
inlineprotected |
Return the file descriptor.
Definition at line 500 of file raw_ostream.h.
Referenced by llvm::raw_fd_stream::read(), and llvm::raw_socket_stream::read().
|
overridevirtual |
This function determines if this stream is displayed and supports colors.
The result is unaffected by calls to enable_color().
Reimplemented from llvm::raw_ostream.
Definition at line 866 of file raw_ostream.cpp.
References llvm::sys::Process::FileDescriptorHasColors().
|
inline |
Return the value of the flag in this raw_fd_ostream indicating whether an output error has been encountered.
This doesn't implicitly flush any pending output. Also, it doesn't guarantee to detect all errors unless the stream has been closed.
Definition at line 562 of file raw_ostream.h.
Referenced by LLVMPrintModuleToFile(), llvm::LockFileManager::LockFileManager(), llvm::LTOCodeGenerator::writeMergedModules(), and ~raw_fd_ostream().
|
inlineprotected |
Definition at line 503 of file raw_ostream.h.
Referenced by llvm::raw_fd_stream::read().
|
overridevirtual |
This function determines if this stream is connected to a "tty" or "console" window.
That is, the output would be displayed to the user rather than being put on a pipe or stored in a file.
Reimplemented from llvm::raw_ostream.
Definition at line 862 of file raw_ostream.cpp.
References llvm::sys::Process::FileDescriptorIsDisplayed().
|
inline |
Definition at line 539 of file raw_ostream.h.
Referenced by llvm::raw_fd_stream::raw_fd_stream().
Expected< sys::fs::FileLocker > raw_fd_ostream::lock | ( | ) |
Locks the underlying file.
The function blocks the current thread until the lock become available or error occurs.
Possible use of this function may be as follows:
Definition at line 872 of file raw_ostream.cpp.
References llvm::errorCodeToError(), and llvm::sys::fs::lockFile().
Flushes the stream and repositions the underlying file descriptor position to the offset specified from the beginning of the file.
Definition at line 815 of file raw_ostream.cpp.
References assert(), llvm::errnoAsErrorCode(), error_detected(), and llvm::raw_ostream::flush().
Referenced by llvm::TarWriter::append(), llvm::BitstreamWriter::BackpatchByte(), llvm::CGDataOStream::patch(), and llvm::ProfOStream::patch().
|
inline |
Definition at line 537 of file raw_ostream.h.
|
inline |
Tie this stream to the specified stream.
Replaces any existing tied-to stream. Specifying a nullptr unties the stream. This is intended for to tie errs() to outs(), so that outs() is flushed whenever something is written to errs(), preventing weird and hard-to-test output when stderr is redirected to stdout.
Definition at line 554 of file raw_ostream.h.
Expected< sys::fs::FileLocker > raw_fd_ostream::tryLockFor | ( | Duration const & | Timeout | ) |
Tries to lock the underlying file within the specified period.
It is used as lock.
Definition at line 880 of file raw_ostream.cpp.
References llvm::errorCodeToError(), llvm::Duration::getDuration(), and llvm::sys::fs::tryLockFile().