libwreport
3.6
|
Common operations on file descriptors. More...
#include <sys.h>
Public Member Functions | |
FileDescriptor (FileDescriptor &&o) | |
FileDescriptor (int fd) | |
FileDescriptor (const FileDescriptor &o)=default | |
FileDescriptor & | operator= (const FileDescriptor &o)=default |
virtual void | throw_error (const char *desc) |
Throw an exception based on errno and the given message. More... | |
virtual void | throw_runtime_error (const char *desc) |
Throw a runtime_error unrelated from errno. More... | |
void | close () |
void | fstat (struct stat &st) |
void | fchmod (mode_t mode) |
int | dup () |
size_t | read (void *buf, size_t count) |
void | read_all_or_throw (void *buf, size_t count) |
Read all the data into buf, throwing runtime_error in case of a partial read. | |
size_t | write (const void *buf, size_t count) |
template<typename Container > | |
size_t | write (const Container &c) |
void | write_all_or_retry (const void *buf, size_t count) |
Write all the data in buf, retrying partial writes. | |
template<typename Container > | |
void | write_all_or_retry (const Container &c) |
void | write_all_or_throw (const void *buf, size_t count) |
Write all the data in buf, throwing runtime_error in case of a partial write. | |
template<typename Container > | |
void | write_all_or_throw (const Container &c) |
off_t | lseek (off_t offset, int whence=SEEK_SET) |
size_t | pread (void *buf, size_t count, off_t offset) |
size_t | pwrite (const void *buf, size_t count, off_t offset) |
template<typename Container > | |
size_t | pwrite (const Container &c, off_t offset) |
void | ftruncate (off_t length) |
MMap | mmap (size_t length, int prot, int flags, off_t offset=0) |
operator int () const | |
Protected Attributes | |
int | fd = -1 |
Common operations on file descriptors.
Except when documented otherwise, methods of this class are just thin wrappers around the libc functions with the same name, that check error results and throw exceptions if the functions failed.
Implementing what to do on construction and destruction is left to the subclassers: at the FileDescriptor level, the destructor does nothing and leaves the file descriptor open.
|
virtual |
Throw an exception based on errno and the given message.
This can be overridden by subclasses that may have more information about the file descriptor, so that they can generate more descriptive messages.
Reimplemented in wreport::sys::NamedFileDescriptor.
|
virtual |
Throw a runtime_error unrelated from errno.
This can be overridden by subclasses that may have more information about the file descriptor, so that they can generate more descriptive messages.
Reimplemented in wreport::sys::NamedFileDescriptor.