Add fs.cpp/h

Cherry-picked from: 19e36bbef
This commit is contained in:
Wladimir J. van der Laan 2017-03-01 15:53:56 +00:00 committed by Patrick Lodder
parent 5eaff1e096
commit e044c640b3
No known key found for this signature in database
GPG Key ID: 7C523F5FBABE80E7
3 changed files with 47 additions and 0 deletions

View File

@ -104,6 +104,7 @@ BITCOIN_CORE_H = \
dogecoin.h \
dogecoin-fees.cpp \
dogecoin-fees.h \
fs.h \
httprpc.h \
httpserver.h \
indirectmap.h \
@ -352,6 +353,7 @@ libdogecoin_util_a_SOURCES = \
compat/glibc_sanity.cpp \
compat/glibcxx_sanity.cpp \
compat/strnlen.cpp \
fs.cpp \
random.cpp \
rpc/protocol.cpp \
support/cleanse.cpp \

21
src/fs.cpp Normal file
View File

@ -0,0 +1,21 @@
// Copyright (c) 2017 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "fs.h"
#include <boost/filesystem.hpp>
namespace fsbridge {
FILE *fopen(const fs::path& p, const char *mode)
{
return ::fopen(p.string().c_str(), mode);
}
FILE *freopen(const fs::path& p, const char *mode, FILE *stream)
{
return ::freopen(p.string().c_str(), mode, stream);
}
} // fsbridge

24
src/fs.h Normal file
View File

@ -0,0 +1,24 @@
// Copyright (c) 2017 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_FS_H
#define BITCOIN_FS_H
#include <stdio.h>
#include <string>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/detail/utf8_codecvt_facet.hpp>
/** Filesystem operations and types */
namespace fs = boost::filesystem;
/** Bridge operations to C stdio */
namespace fsbridge {
FILE *fopen(const fs::path& p, const char *mode);
FILE *freopen(const fs::path& p, const char *mode, FILE *stream);
};
#endif // BITCOIN_FS_H