From a19fe8260a4e1f4cb9d523f5b2cb41eae0a61acd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 23 Dec 2022 20:14:59 +0100 Subject: Add File::open_error(). --- src/file.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/file.cc') diff --git a/src/file.cc b/src/file.cc index b79051a3..e13954bd 100644 --- a/src/file.cc +++ b/src/file.cc @@ -51,11 +51,18 @@ File::File(boost::filesystem::path path, std::string mode) : _path(path) { #ifdef LIBDCP_WINDOWS + SetLastError(0); std::wstring mode_wide(mode.begin(), mode.end()); /* c_str() here should give a UTF-16 string */ _file = _wfopen(fix_long_path(path).c_str(), mode_wide.c_str()); + if (!_file) { + _open_error = GetLastError(); + } #else _file = fopen(path.c_str(), mode.c_str()); + if (!_file) { + _open_error = errno; + } #endif } @@ -63,6 +70,7 @@ File::File(boost::filesystem::path path, std::string mode) File::File(File&& other) : _path(other._path) , _file(other._file) + , _open_error(other._open_error) { other._file = nullptr; } @@ -74,6 +82,7 @@ File::operator=(File&& other) if (*this != other) { close(); _file = other._file; + _open_error = other._open_error; other._file = nullptr; } return *this; -- cgit v1.2.3