#include <sbuild-util.h>
Public Types | |
enum | error_code { FILE, FD } |
Error codes. More... | |
enum | mode_bits { FILE_TYPE_MASK = S_IFMT, FILE_TYPE_SOCKET = S_IFSOCK, FILE_TYPE_LINK = S_IFLNK, FILE_TYPE_REGULAR = S_IFREG, FILE_TYPE_BLOCK = S_IFBLK, FILE_TYPE_DIRECTORY = S_IFDIR, FILE_TYPE_CHARACTER = S_IFCHR, FILE_TYPE_FIFO = S_IFIFO, PERM_SETUID = S_ISUID, PERM_SETGIT = S_ISGID, PERM_STICKY = S_ISVTX, PERM_USER_MASK = S_IRWXU, PERM_USER_READ = S_IRUSR, PERM_USER_WRITE = S_IWUSR, PERM_USER_EXECUTE = S_IXUSR, PERM_GROUP_MASK = S_IRWXG, PERM_GROUP_READ = S_IRGRP, PERM_GROUP_WRITE = S_IWGRP, PERM_GROUP_EXECUTE = S_IXGRP, PERM_OTHER_MASK = S_IRWXO, PERM_OTHER_READ = S_IROTH, PERM_OTHER_WRITE = S_IWOTH, PERM_OTHER_EXECUTE = S_IXOTH } |
Mode bits. More... | |
typedef custom_error< error_code > | error |
Exception type. | |
Public Member Functions | |
stat (std::string const &file) | |
The constructor. | |
stat (std::string const &file, int fd) | |
The constructor. | |
stat (int fd) | |
The constructor. | |
virtual | ~stat () |
The destructor. | |
void | check () const |
Check if the file status was obtained. | |
struct::stat const & | get_detail () |
Get the struct stat used internally. | |
dev_t | device () const |
Get the device the file resides on. | |
ino_t | inode () const |
Get the inode of the file. | |
mode_t | mode () const |
Get the mode of the file. | |
nlink_t | links () const |
Get the number of hard links to the file. | |
uid_t | uid () const |
Get the user id owning the file. | |
gid_t | gid () const |
Get the group id owning the file. | |
off_t | size () const |
Get the file size. | |
blksize_t | blocksize () const |
Get the file block size. | |
blkcnt_t | blocks () const |
Get the file block count. | |
time_t | atime () const |
Get the file access time. | |
time_t | mtime () const |
Get the file modification time. | |
time_t | ctime () const |
Get the file creation time. | |
bool | is_regular () const |
Is the file a regular file? | |
bool | is_directory () const |
Is the file a directory? | |
bool | is_character () const |
Is the file a character device? | |
bool | is_block () const |
Is the file a block device? | |
bool | is_fifo () const |
Is the file a named pipe (FIFO)? | |
bool | is_link () const |
Is the file a symbolic link? | |
bool | is_socket () const |
Is the file a socket? | |
bool | check_mode (mode_bits mask) const |
Check if particular mode bits are set. | |
Private Attributes | |
std::string | file |
The filename being checked (if specified). | |
int | fd |
The file descriptor being checked (if specified). | |
int | errorno |
The error number set after stat(2) error. | |
struct::stat | status |
The stat(2) results. |
stat(2) wrapper.
typedef custom_error<error_code> sbuild::stat::error |
Exception type.
Mode bits.
sbuild::stat::stat | ( | std::string const & | file | ) |
sbuild::stat::stat | ( | std::string const & | file, | |
int | fd | |||
) |
sbuild::stat::stat | ( | int | fd | ) |
sbuild::stat::~stat | ( | ) | [virtual] |
The destructor.
time_t sbuild::stat::atime | ( | ) | const [inline] |
blkcnt_t sbuild::stat::blocks | ( | ) | const [inline] |
blksize_t sbuild::stat::blocksize | ( | ) | const [inline] |
void sbuild::stat::check | ( | ) | const [inline] |
bool sbuild::stat::check_mode | ( | mode_bits | mask | ) | const [inline] |
Check if particular mode bits are set.
mask | A bitmask containing the bits to check are set. |
References check(), and status.
Referenced by is_block(), is_character(), is_directory(), is_fifo(), is_link(), is_regular(), is_socket(), sbuild::chroot_config::load_data(), sbuild::chroot_loopback::setup_lock(), and sbuild::chroot_file::setup_lock().
time_t sbuild::stat::ctime | ( | ) | const [inline] |
dev_t sbuild::stat::device | ( | ) | const [inline] |
struct ::stat const& sbuild::stat::get_detail | ( | ) | [inline] |
gid_t sbuild::stat::gid | ( | ) | const [inline] |
ino_t sbuild::stat::inode | ( | ) | const [inline] |
bool sbuild::stat::is_block | ( | ) | const [inline] |
Is the file a block device?
References check_mode(), FILE_TYPE_BLOCK, and FILE_TYPE_MASK.
Referenced by sbuild::chroot_lvm_snapshot::setup_lock().
bool sbuild::stat::is_character | ( | ) | const [inline] |
Is the file a character device?
References check_mode(), FILE_TYPE_CHARACTER, and FILE_TYPE_MASK.
bool sbuild::stat::is_directory | ( | ) | const [inline] |
Is the file a directory?
References check_mode(), FILE_TYPE_DIRECTORY, and FILE_TYPE_MASK.
bool sbuild::stat::is_fifo | ( | ) | const [inline] |
Is the file a named pipe (FIFO)?
References check_mode(), FILE_TYPE_FIFO, and FILE_TYPE_MASK.
bool sbuild::stat::is_link | ( | ) | const [inline] |
Is the file a symbolic link?
References check_mode(), FILE_TYPE_LINK, and FILE_TYPE_MASK.
bool sbuild::stat::is_regular | ( | ) | const [inline] |
Is the file a regular file?
References check_mode(), FILE_TYPE_MASK, and FILE_TYPE_REGULAR.
Referenced by sbuild::chroot_config::load_data(), sbuild::chroot_loopback::setup_lock(), and sbuild::chroot_file::setup_lock().
bool sbuild::stat::is_socket | ( | ) | const [inline] |
Is the file a socket?
References check_mode(), FILE_TYPE_MASK, and FILE_TYPE_SOCKET.
nlink_t sbuild::stat::links | ( | ) | const [inline] |
mode_t sbuild::stat::mode | ( | ) | const [inline] |
time_t sbuild::stat::mtime | ( | ) | const [inline] |
off_t sbuild::stat::size | ( | ) | const [inline] |
uid_t sbuild::stat::uid | ( | ) | const [inline] |
Get the user id owning the file.
References check(), and status.
Referenced by sbuild::chroot_config::load_data(), sbuild::chroot_loopback::setup_lock(), and sbuild::chroot_file::setup_lock().
int sbuild::stat::errorno [private] |
int sbuild::stat::fd [private] |
std::string sbuild::stat::file [private] |
struct ::stat sbuild::stat::status [private] |
The stat(2) results.
Referenced by atime(), blocks(), blocksize(), check_mode(), ctime(), device(), get_detail(), gid(), inode(), links(), mode(), mtime(), size(), stat(), and uid().