diff options
author | Benjamin Barenblat <bbaren@mit.edu> | 2016-02-20 15:27:41 -0500 |
---|---|---|
committer | Benjamin Barenblat <bbaren@mit.edu> | 2016-02-21 20:38:02 -0500 |
commit | ae657efd38d9fcf21b9fddc83c83d095e4f284b7 (patch) | |
tree | 464ec0500f14a4bb280a69ebc26d806d87b0d6f5 | |
parent | f4b0c2e93a2f45b548465dba84b257bcb3b41446 (diff) |
Unify File::OpenAt functions
-rw-r--r-- | src/posix_extras.cc | 13 | ||||
-rw-r--r-- | src/posix_extras.h | 4 |
2 files changed, 3 insertions, 14 deletions
diff --git a/src/posix_extras.cc b/src/posix_extras.cc index 6844785..359240f 100644 --- a/src/posix_extras.cc +++ b/src/posix_extras.cc @@ -75,19 +75,6 @@ struct stat File::LinkStatAt(const char* const path) const { return result; } -File File::OpenAt(const char* const path, const int flags) const { - if (path[0] == '/') { - throw std::invalid_argument("absolute path"); - } - - File result; - if ((result.fd_ = openat(fd_, path, flags)) == -1) { - throw SystemError(); - } - result.path_ = path_ + "/" + path; - return result; -} - File File::OpenAt(const char* const path, const int flags, const mode_t mode) const { if (path[0] == '/') { diff --git a/src/posix_extras.h b/src/posix_extras.h index f4e7c69..9bcbe51 100644 --- a/src/posix_extras.h +++ b/src/posix_extras.h @@ -68,7 +68,9 @@ class File { // Calls openat(2) on the path relative to the file descriptor. The path must // indeed be relative (i.e., it must not start with '/'). - File OpenAt(const char* path, int flags) const; + File OpenAt(const char* const path, const int flags) const { + return OpenAt(path, flags, 0); + } File OpenAt(const char* path, int flags, mode_t mode) const; // Removes the file at the path relative to the file descriptor. The path |