gpt4 book ai didi

c++ - 为什么 WriteFile 不会运行多次?

转载 作者:行者123 更新时间:2023-11-27 23:00:04 25 4
gpt4 key购买 nike

这是我的代码,其中我陷入了无限循环(据我所知)

while(true) {
DWORD TitleID = XamGetCurrentTitleId();
std::ostringstream titleMessageSS;
titleMessageSS << "Here's the current title we're on : " << TitleID << "\n\n";
std::string titleMessage = titleMessageSS.str(); // get the string from the stream
DWORD dwBytesToWrite = (DWORD)titleMessage.size();
DWORD dwBytesWritten = 0;
BOOL bErrorFlag = FALSE;
HANDLE logFile = CreateFile( "Hdd:\\LOGFile.txt", GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
bErrorFlag = WriteFile(logFile, titleMessage.c_str(), dwBytesToWrite, &dwBytesWritten, NULL);
CloseHandle(logFile);
Sleep(30000);
}
return NULL;

有没有人知道为什么这只写一次?我已经等了 5 多分钟,看看它是否最终无济于事。

最佳答案

CreateFile 中的标志 CREATE_NEW 阻止了文件更新,因为 CreateFileERROR_FILE_EXISTS 而失败。请改用 OPEN_ALWAYS。它也总是会被截断。如果您想在日志文件末尾添加新行,请将 GENERIC_WRITE 替换为 FILE_APPEND_DATA

整个 CreateFile 行应该是:

HANDLE logFile = CreateFile( "Hdd:\\LOGFile.txt", FILE_APPEND_DATA , 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

仔细阅读 CreateFile 文档,这是值得的,因为它在 windows IO 世界中具有核心作用: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx

再看看补充: https://stackoverflow.com/a/9891875/1922748

关于c++ - 为什么 WriteFile 不会运行多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com