﻿# V2606\. MISRA\. There should be no attempt to write to a stream that has been opened for reading\.

This diagnostic rule is based on the [MISRA](https://www.misra.org.uk/) \(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:

```cpp
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:

```cpp
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);
  }
}
```