system/FileDescriptor: add method IsValid()

This commit is contained in:
Max Kellermann 2017-08-10 11:52:22 +02:00
parent 8c832f4c50
commit d310f3e9b7
2 changed files with 18 additions and 0 deletions

View File

@ -57,6 +57,16 @@
#define O_CLOEXEC 0
#endif
#ifndef _WIN32
bool
FileDescriptor::IsValid() const noexcept
{
return IsDefined() && fcntl(fd, F_GETFL) >= 0;
}
#endif
bool
FileDescriptor::Open(const char *pathname, int flags, mode_t mode) noexcept
{

View File

@ -64,6 +64,14 @@ public:
return fd >= 0;
}
#ifndef _WIN32
/**
* Ask the kernel whether this is a valid file descriptor.
*/
gcc_pure
bool IsValid() const noexcept;
#endif
/**
* Returns the file descriptor. This may only be called if
* IsDefined() returns true.