我正在Windows 7 Professional x64的MSVC 2012中开发32位控制台应用程序。
我正在Windows 7 Professional和Windows 10 Professional上运行该应用程序。
我的应用程序每5秒钟打开一个文件以供读取,先读取该文件,然后将其关闭。
这里是代码:
strcpy (file_name, "my_file");
f = fopen(file_name, "rb);
if (f != NULL)
{
char data[128];
size_t count;
count = fread (data, 1, sizeof (data), f);
fclose(f);
}
else
{
int mickey;
mickey = 10; /* Breakpoint here*/
}
一切正常,但是10分钟后fopen()函数返回NULL。
它在所有后续的fopen()调用中都返回NULL。
打开文件的唯一方法是关闭并重新启动应用程序。
为了调查问题,我在以下语句中设置了一个断点:mickey = 10。数组file_name包含“ my_file”,因此这不是名称问题。
在每次成功执行fopen()之后都会调用fclose(),因此我认为文件总是关闭的。
问题出现在Windows 7和Windows 10上。
谢谢,Enrico Migliore
我意识到有一种状态,我没有fclose()文件。
现在一切正常。
Enrico Migliore