Windows 7, 10 - fopen () возвращает NULL после работы в течение нескольких минут - PullRequest
0 голосов
/ 12 марта 2020

ПРЕДИСЛОВИЕ

Я разрабатываю 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.

Спасибо, Энрико Мильоре

...