ПРЕДИСЛОВИЕ
Я разрабатываю 32-разрядное консольное приложение в MSV C 2012 на Windows 7 Professional x64.
Я запускаю приложение на обоих 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.
Возвращает NULL при всех последующих вызовах fopen ().
Единственный способ открыть файл - закрыть и перезапустить приложение.
Чтобы исследовать проблему, я установил точку останова в операторе: mickey = 10. Массив file_name содержит «my_file», и поэтому он не проблема с именем.
Функция fclose () вызывается после каждого успешного выполнения fopen (), поэтому я предполагаю, что файл всегда закрывается.
Проблема обнаруживается на Windows 7 и Windows 10.
Спасибо, Энрико Мильоре