mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-08 03:33:32 +01:00
Use fsbridge for fopen and freopen
Abstracts away how a path is opened to a `FILE*`. Reduces the number of places where path is converted to a string for anything else but printing.
This commit is contained in:
10
src/util.cpp
10
src/util.cpp
@@ -215,7 +215,7 @@ void OpenDebugLog()
|
||||
assert(fileout == NULL);
|
||||
assert(vMsgsBeforeOpenLog);
|
||||
fs::path pathDebug = GetDataDir() / "debug.log";
|
||||
fileout = fopen(pathDebug.string().c_str(), "a");
|
||||
fileout = fsbridge::fopen(pathDebug, "a");
|
||||
if (fileout) {
|
||||
setbuf(fileout, NULL); // unbuffered
|
||||
// dump buffered messages from before we opened the log
|
||||
@@ -354,7 +354,7 @@ int LogPrintStr(const std::string &str)
|
||||
if (fReopenDebugLog) {
|
||||
fReopenDebugLog = false;
|
||||
fs::path pathDebug = GetDataDir() / "debug.log";
|
||||
if (freopen(pathDebug.string().c_str(),"a",fileout) != NULL)
|
||||
if (fsbridge::freopen(pathDebug,"a",fileout) != NULL)
|
||||
setbuf(fileout, NULL); // unbuffered
|
||||
}
|
||||
|
||||
@@ -625,7 +625,7 @@ fs::path GetPidFile()
|
||||
|
||||
void CreatePidFile(const fs::path &path, pid_t pid)
|
||||
{
|
||||
FILE* file = fopen(path.string().c_str(), "w");
|
||||
FILE* file = fsbridge::fopen(path, "w");
|
||||
if (file)
|
||||
{
|
||||
fprintf(file, "%d\n", pid);
|
||||
@@ -764,7 +764,7 @@ void ShrinkDebugFile()
|
||||
constexpr size_t RECENT_DEBUG_HISTORY_SIZE = 10 * 1000000;
|
||||
// Scroll debug.log if it's getting too big
|
||||
fs::path pathLog = GetDataDir() / "debug.log";
|
||||
FILE* file = fopen(pathLog.string().c_str(), "r");
|
||||
FILE* file = fsbridge::fopen(pathLog, "r");
|
||||
// If debug.log file is more than 10% bigger the RECENT_DEBUG_HISTORY_SIZE
|
||||
// trim it down by saving only the last RECENT_DEBUG_HISTORY_SIZE bytes
|
||||
if (file && fs::file_size(pathLog) > 11 * (RECENT_DEBUG_HISTORY_SIZE / 10))
|
||||
@@ -775,7 +775,7 @@ void ShrinkDebugFile()
|
||||
int nBytes = fread(vch.data(), 1, vch.size(), file);
|
||||
fclose(file);
|
||||
|
||||
file = fopen(pathLog.string().c_str(), "w");
|
||||
file = fsbridge::fopen(pathLog, "w");
|
||||
if (file)
|
||||
{
|
||||
fwrite(vch.data(), 1, nBytes, file);
|
||||
|
||||
Reference in New Issue
Block a user