mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:07:44 +00:00
LibCore: Add File::is_{block,char}_device() helpers
The existing File::is_device() helpers don't distinguish between block and char devices. This commit adds File::is_block_device() and File::is_char_device() helpers which are more specific.
This commit is contained in:
parent
380ce43afc
commit
7b8088c78d
2 changed files with 36 additions and 0 deletions
|
@ -115,6 +115,38 @@ bool File::is_device(String const& filename)
|
||||||
return S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode);
|
return S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool File::is_block_device() const
|
||||||
|
{
|
||||||
|
struct stat stat;
|
||||||
|
if (fstat(fd(), &stat) < 0)
|
||||||
|
return false;
|
||||||
|
return S_ISBLK(stat.st_mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool File::is_block_device(String const& filename)
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
if (stat(filename.characters(), &st) < 0)
|
||||||
|
return false;
|
||||||
|
return S_ISBLK(st.st_mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool File::is_char_device() const
|
||||||
|
{
|
||||||
|
struct stat stat;
|
||||||
|
if (fstat(fd(), &stat) < 0)
|
||||||
|
return false;
|
||||||
|
return S_ISCHR(stat.st_mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool File::is_char_device(String const& filename)
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
if (stat(filename.characters(), &st) < 0)
|
||||||
|
return false;
|
||||||
|
return S_ISCHR(st.st_mode);
|
||||||
|
}
|
||||||
|
|
||||||
bool File::is_directory() const
|
bool File::is_directory() const
|
||||||
{
|
{
|
||||||
struct stat stat;
|
struct stat stat;
|
||||||
|
|
|
@ -28,6 +28,10 @@ public:
|
||||||
|
|
||||||
bool is_device() const;
|
bool is_device() const;
|
||||||
static bool is_device(String const& filename);
|
static bool is_device(String const& filename);
|
||||||
|
bool is_block_device() const;
|
||||||
|
static bool is_block_device(String const& filename);
|
||||||
|
bool is_char_device() const;
|
||||||
|
static bool is_char_device(String const& filename);
|
||||||
|
|
||||||
bool is_link() const;
|
bool is_link() const;
|
||||||
static bool is_link(String const& filename);
|
static bool is_link(String const& filename);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue