Summary:
In hopes of keeping 'busywork' helpers out of folly, I've moved this
closer to the code that needed to do this.
Test Plan: Unit tests
Reviewed By: andrei.alexandrescu@fb.com
FB internal diff:
D729194
Blame Revision:
D726916
return File(fd, true);
}
-/* static */ File File::tryOpen(const char* name,
- int flags,
- mode_t mode) {
- try {
- return File(name, flags, mode);
- } catch (const std::system_error&) {
- return File();
- }
-}
-
void File::release() {
fd_ = -1;
ownsFd_ = false;
*/
static File temporary();
- /**
- * Attempts to open the file at the given path. Returns an 'closed` File
- * instance on failure, which will evaluate to false.
- */
- static File tryOpen(const char* name,
- int flags = O_RDONLY,
- mode_t mode = 0644);
-
/**
* Return the file descriptor, or -1 if the file was closed.
*/
EXPECT_TRUE(false);
}
}
-
-TEST(File, TryOpen) {
- EXPECT_FALSE(!!File::tryOpen("does_not_exist.txt"));
- EXPECT_TRUE(!!File::tryOpen("/etc/fstab"));
-}