Index: util/file/file_io_posix.cc |
diff --git a/util/file/file_io_posix.cc b/util/file/file_io_posix.cc |
index ff32009021679f3690e9a7eb65c402dfc2e5f6d1..ce88bf5c60d9bc94b9b16f3a422210f26da39cf4 100644 |
--- a/util/file/file_io_posix.cc |
+++ b/util/file/file_io_posix.cc |
@@ -14,8 +14,10 @@ |
#include "util/file/file_io.h" |
+#include <fcntl.h> |
#include <unistd.h> |
+#include "base/files/file_path.h" |
#include "base/logging.h" |
#include "base/numerics/safe_conversions.h" |
#include "base/posix/eintr_wrapper.h" |
@@ -74,6 +76,19 @@ ssize_t WriteFile(FileHandle file, const void* buffer, size_t size) { |
return ReadOrWrite<WriteTraits>(file, buffer, size); |
} |
+FileHandle LoggingOpenFileForWrite(const base::FilePath& path, uint32_t mode) { |
+ int fd = HANDLE_EINTR( |
+ open(path.value().c_str(), O_WRONLY | O_CREAT | O_TRUNC, mode)); |
+ PLOG_IF(ERROR, fd < 0) << "open " << path.value(); |
+ return fd; |
+} |
+ |
+FileHandle LoggingOpenFileForRead(const base::FilePath& path) { |
+ int fd = HANDLE_EINTR(open(path.value().c_str(), O_RDONLY)); |
+ PLOG_IF(ERROR, fd < 0) << "open " << path.value(); |
+ return fd; |
+} |
+ |
bool LoggingCloseFile(FileHandle file) { |
int rv = IGNORE_EINTR(close(file)); |
PLOG_IF(ERROR, rv != 0) << "close"; |