Wiki Markup |
---|
The C99 tandard function {{fopen()}} function is typically used to open an existing file or create a new one \[[ISO/IEC 9899:1999|AA. C References#ISO/IEC 9899-1999]\]. However, {{fopen()}} does not indicate if an existing file has been opened for writing or a new file has been created. This may lead to a program overwriting or accessing an unintended file. |
...
Wiki Markup |
---|
The {{open()}} function as defined in the Open Group Base Specifications Issue 6 \[[Open Group 04|AA. C References#Open Group 04]\] is available on many platforms and provides the control that {{fopen()}} does not provide. If the {{O_CREAT}} and {{O_EXCL}} flags are used together, the {{open()}} function fails whenif the file specified by {{file_name}} already exists. |
...
The GNU C library defines one additional character for use in
opentype
: the character `'x
' insists on creating a new fileâ”if a filefilename
already exists,fopen
fails rather than opening it. If you use `'x
' you are guaranteed that you will not clobber an existing file. This is equivalent to theO_EXCL
option to theopen
function.
...
Wiki Markup |
---|
\[[ISO/IEC 9899:1999|AA. C References#ISO/IEC 9899-1999]\] Section 7.19.3, "Files," and Section 7.19.4, "Operations on Files" \[[ISO/IEC TR 24731-1:2007|AA. C References#SO/IEC TR 24731-1-2007]\] Section 6.5.2.1, "The {{fopen_s}} function" \[[Loosemore 07|AA. C References#Loosemore 07]\] [Section 12.3, "Opening Streams"|http://www.gnu.org/software/libc/manual/html_node/Opening-Streams.html] \[[Open Group 04|AA. C References#Open Group 04]\] \[[Seacord 05|AA. C References#Seacord 05]\] Chapter 7, "File I/O" |
...