Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The C99 fopen() function can open streams to which both input and output may be performed. This functionality is known as "update" mode and is signified by using '{+}' as the second or third character in the mode string to fopen().

...

When a file is opened with update mode ('{+}' as the second or third character in the above list of mode argument values), both input and output may be performed on the associated stream. However, output shall not be directly followed by input without an intervening call to the fflush function or to a file positioning function (fseek, fsetpos, or rewind), and input shall not be directly followed by output without an intervening call to a file positioning function, unless the input operation encounters end-of-file. Opening (or creating) a text file with update mode may instead open (or create) a binary stream in some implementations.

...

Risk Assessment

Alternately inputing inputting and outputting from a stream without an intervening flush or positioning call results in undefined behavior.

...