This diagnostic rule is based on the MISRA (Motor Industry Software Reliability Association) manual for software development.
This rule only applies to C. The C standard does not define the behavior when the 'fputs' function writes data into a read-only file. Therefore, this is an incorrect behavior.
Look at the example:
void foo(void) { FILE *file = fopen("file.txt", "r"); if (file != NULL) { fputs(file, "I am writing to the read-only file\n"); fclose(file); } }
The file.txt file was opened in read-only mode, but at the same time the 'fputs' function writes data into it. The software may behave unpredictably in this situation.
Most likely it's a typo and you need to change the opening mode:
void foo(void) { FILE *file = fopen("file.txt", "w"); if (file != NULL) { fputs(file, "I am writing to the write-only file\n"); fclose(file); } }
This diagnostic is classified as:
|