aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Files.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-04-12 22:48:52 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-04-12 22:48:52 -0700
commit7069fbbebc750a7c8a64adc8c30269527cbec9bd (patch)
tree94d08f8fd3f04be1167f274c7aab37d0100a693b /toolsrc/src/vcpkg_Files.cpp
parent7326b6c64dc6b04b6d8512f13dddf67bf7498bf1 (diff)
downloadvcpkg-7069fbbebc750a7c8a64adc8c30269527cbec9bd.tar.gz
vcpkg-7069fbbebc750a7c8a64adc8c30269527cbec9bd.zip
[vcpkg] Remove+indirect nearly all uses of iostreams
Diffstat (limited to 'toolsrc/src/vcpkg_Files.cpp')
-rw-r--r--toolsrc/src/vcpkg_Files.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg_Files.cpp b/toolsrc/src/vcpkg_Files.cpp
index a4a637b78..f4fb1bb61 100644
--- a/toolsrc/src/vcpkg_Files.cpp
+++ b/toolsrc/src/vcpkg_Files.cpp
@@ -149,6 +149,16 @@ namespace vcpkg::Files
{
return fs::stdfs::status(path, ec);
}
+ virtual void write_contents(const fs::path& file_path, const std::string& data) override
+ {
+ FILE* f = nullptr;
+ auto ec = _wfopen_s(&f, file_path.native().c_str(), L"wb");
+ Checks::check_exit(VCPKG_LINE_INFO, ec == 0);
+ auto count = fwrite(data.data(), sizeof(data[0]), data.size(), f);
+ fclose(f);
+
+ Checks::check_exit(VCPKG_LINE_INFO, count == data.size());
+ }
};
Filesystem & get_real_filesystem()