This diagnostic rule is based on the software development guidelines developed by MISRA (Motor Industry Software Reliability Association).
This rule applies only to C. Using a pointer to the standard type 'FILE' after the associated stream has been already closed may lead to errors because that object will be having an undefined state.
Example of non-compliant code:
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.
}
This diagnostic is classified as:
|