sbuild 1.4.23
|
Get file status. More...
#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 (const char *file) | |
The constructor. | |
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. |
Get file status.
stat(2) wrapper.
Mode bits.
sbuild::stat::stat | ( | const char * | file | ) |
sbuild::stat::stat | ( | std::string const & | file | ) |
sbuild::stat::stat | ( | std::string const & | file, |
int | fd | ||
) |
sbuild::stat::stat | ( | int | fd | ) |
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] |
Check if the file status was obtained.
An error will be thrown if stat(2) failed to get the file status.
References errorno, FD, fd, FILE, and file.
Referenced by atime(), blocks(), blocksize(), check_mode(), ctime(), device(), sbuild::session::get_shell(), gid(), inode(), links(), mode(), mtime(), size(), and uid().
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] |
Get the struct stat used internally.
This is returned by stat(2).
References status.
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::add_config_directory(), sbuild::find_program_in_path(), 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().