﻿# V1075\. The function expects the file to be opened in one mode, but it was opened in different mode\.

Анализатор обнаружил ситуацию, при которой файл был открыт в одном режиме, но вызываемая функция ожидает, что он будет находиться в другом\.

Например, файл был открыт в режиме только для записи, но он используется для чтения:

```cpp
bool read_file(void *ptr, size_t len)
{
  FILE *file = fopen("file.txt", "wb");      // <=
  if (file != NULL)
  {
    bool ok = fread(ptr, len, 1, file) == 1;
    fclose(file);
    return ok;
  }
  return false;
}
```

Скорее всего, это опечатка\. Для исправления следует использовать правильный режим:

```cpp
bool read_file(void *ptr, size_t len)
{
  FILE *file = fopen("file.txt", "rb");      // <=
  if (file != NULL)
  {
    bool ok = fread(ptr, len, 1, file) == 1;
    fclose(file);
    return ok;
  }
  return false;
}
```

Также возможна ситуация, когда происходит запись в закрытый файл:

```cpp
void do_something_with_file(FILE* file)
{
  // ....
  fclose(file);
}

void foo(void)
{
  FILE *file = fopen("file.txt", "w");
  if (file != NULL)
  {
    do_something_with_file(file);
    fprintf(file, "writing additional data\n");
  }
}
```

Следует проверить корректность такого использования ресурсов в программе и исправить проблему\.