Commit d310f3e9 authored by Max Kellermann's avatar Max Kellermann

system/FileDescriptor: add method IsValid()

parent 8c832f4c
...@@ -57,6 +57,16 @@ ...@@ -57,6 +57,16 @@
#define O_CLOEXEC 0 #define O_CLOEXEC 0
#endif #endif
#ifndef _WIN32
bool
FileDescriptor::IsValid() const noexcept
{
return IsDefined() && fcntl(fd, F_GETFL) >= 0;
}
#endif
bool bool
FileDescriptor::Open(const char *pathname, int flags, mode_t mode) noexcept FileDescriptor::Open(const char *pathname, int flags, mode_t mode) noexcept
{ {
......
...@@ -64,6 +64,14 @@ public: ...@@ -64,6 +64,14 @@ public:
return fd >= 0; 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 * Returns the file descriptor. This may only be called if
* IsDefined() returns true. * IsDefined() returns true.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment