]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/filesystem/string_file.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / filesystem / string_file.hpp
1 // filesystem/string_file.hpp --------------------------------------------------------//
2
3 // Copyright Beman Dawes 2015
4
5 // Distributed under the Boost Software License, Version 1.0.
6 // See http://www.boost.org/LICENSE_1_0.txt
7
8 // Library home page: http://www.boost.org/libs/filesystem
9
10 #ifndef BOOST_FILESYSTEM_STRING_FILE_HPP
11 #define BOOST_FILESYSTEM_STRING_FILE_HPP
12
13 #include <string>
14 #include <boost/filesystem/fstream.hpp>
15 #include <boost/filesystem/operations.hpp>
16
17 namespace boost
18 {
19 namespace filesystem
20 {
21 inline
22 void save_string_file(const path& p, const std::string& str)
23 {
24 filesystem::ofstream file;
25 file.exceptions(std::ofstream::failbit | std::ofstream::badbit);
26 file.open(p, std::ios_base::binary);
27 file.write(str.c_str(), str.size());
28 }
29
30 inline
31 void load_string_file(const path& p, std::string& str)
32 {
33 filesystem::ifstream file;
34 file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
35 file.open(p, std::ios_base::binary);
36 std::size_t sz = static_cast<std::size_t>(filesystem::file_size(p));
37 str.resize(sz, '\0');
38 file.read(&str[0], sz);
39 }
40 } // namespace filesystem
41 } // namespace boost
42
43 #endif // include guard