输出:
The first file found is LOG_09.TXT
Next file name is LOG_10.TXT
Next file name is LOG_11.TXT
Next fi (cut off word "file"?)
功能:
//Find last modified log file
hFind = FindFirstFile("..\\..\\LOGS\\LOG*.TXT", &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("FindFirstFile failed (%d)\n", GetLastError());
return;
}
else
{
printf("The first file found is %s<br>",FindFileData.cFileName);
//List all the other files in the directory.
while (FindNextFile(hFind, &FindFileData) != 0)
{
printf ("Next file name is %s<br>", FindFileData.cFileName); //NOT DISPLAYING ALL NAMES CONSISTENTLY??
}
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES)
{
printf ("FindNextFile error. Error is %u.\n", dwError);
return (-1);
}
}
“文件”这个词实际上在我的 printf 中被缩短了。有时它显示所有文件名,有时它显示一些文件名,有时它甚至没有完成 printf 引用的行,如上所示。造成这种情况的原因是什么?我是否被 printf 功能误导了?在调试器中看起来一切正常,但我想确定并理解这一点。例如,我在文件中的 i 之后没有空字符,对吧?为什么这里会被切断呢?谢谢。
EDIT: 不正确- 单线程应用程序库。 (之前是多线程的,抱歉)
打印到文件给出完整的文件列表,而 printf 同时是“不稳定的”。不确定我明白为什么......
既然你说你的程序是多线程的,我猜想这个函数正在执行的线程被提前杀死了。在调试器下运行时不会发生这种情况。您需要一些线程同步来确保允许该线程完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)