The C standard specifies identifies specific strings to use for the mode
for the function on calls to fopen()
. An implementation may define extra strings that define additional modesadditional mode strings, but only the modes in the following table (adapted from the C99 standard) are fully portable and C99 compliant:
| 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 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.
Risk Assessment
Using a non-standard mode will lead to undefined behavior, likely causing the call to fopen()
to fail.
...