【发布时间】:2015-02-21 10:40:30
【问题描述】:
这是我陷入无限循环的代码(据我所知)
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 多分钟,看看它到底有没有用。
【问题讨论】:
-
这都不是标准的c++,我强烈推荐你使用Standard I/O library中的类和函数。还要注意你的
while(true)循环永远不会结束,这可能不是你想做的。 -
MSDN:CREATE_NEW:创建一个新文件,前提是它不存在。
-
@πάνταῥεῖ:如果您从不查看原生 API,如何了解操作系统?
-
@πάνταῥεῖ:与本机 Windows I/O 系统相比,标准 I/O 库感觉非常糟糕。重叠 I/O、文件映射或 关闭时删除 创建处置只是 C++ 标准 I/O 库中根本没有反映的几个方面。
-
如果您 1. 不检查错误和 2. 不执行基本调试,那么试图解决这个问题是没有希望的。