﻿# V2556\. MISRA\. Use of a pointer to FILE when the associated stream has already been closed\.

Данное диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Это правило справедливо только для C\. Использование указателя на стандартный тип 'FILE' после закрытия потока, на который он указывает, может привести к ошибкам, т\. к\. состояние этого объекта будет не определено\.

На следующий участок кода будет выдано соответствующее предупреждение\. 

```cpp
FILE* f = fopen("/path/to/file.log", "w");
if (f == NULL) { .... }
fprintf(f, "....");

if (....) // something went wrong
{
  fclose(f);
  fprintf(f, "...."); // Print log information
                      // after stream has been released.
}
```