Versions Compared

Key

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

Wiki Markup
The C standard identifies specific strings to use for the {{mode}} on calls to {{fopen()
. An implementation may define additional mode strings, but only the modes in the following table (adapted from the C99 standard) are fully portable and C99 compliant
}} \[[ISO/IEC 9899-1999|AA. C References#ISO/IEC 9899-1999]\] . To be strictly conforming and portable, you must use one of these strings:

mode string

Result

r

open text file for reading

w

truncate to zero length or create text file for writing

a

append; open or create text file for writing at end-of-file

rb

open binary file for reading

wb

truncate to zero length or create binary file for writing

ab

append; open or create binary file for writing at end-of-file

r+

open text file for update (reading and writing)

w+

truncate to zero length or create text file for update

a+

append; open or create text file for update, writing at end-of-file

r+b or rb+

open binary file for update (reading and writing)

w+b or wb+

truncate to zero length or create binary file for update

a+b or ab+

append; open or create binary file for update, writing at end-of-file

If the mode string begins with one of the above sequences, the implementation might choose to ignore the
remaining characters, or it might use them to select different kinds of a file.

An implementation may define additional mode strings, but only the modes in the following table (adapted from the C99 standard) are fully portable and C99 compliant:

Risk Assessment

Using a non-standard mode will lead to undefined behavior, likely causing mode string that is not recognized by an implementation may cause the call to fopen() to fail.

...