...
Wiki Markup |
---|
The {{open()}} function, as defined in the Open Group Base Specifications Issue 6 \[[Open Group 042004|AA. Bibliography#Open Group 04]\], is available on many platforms and provides finer control than {{fopen()}}. In particular, {{open()}} accepts the {{O_CREAT}} and {{O_EXCL}} flags. When used together, these flags instruct the {{open()}} function to fail if the file specified by {{file_name}} already exists. |
...
Wiki Markup |
---|
Care should be taken when using {{O_EXCL}} with remote file systems because it does not work with NFS version 2. NFS version 3 added support for {{O_EXCL}} mode in {{open()}}. IETF RFC 1813 defines the {{EXCLUSIVE}} value to the {{mode}} argument of {{CREATE}} \[[Callaghan 951995|AA. Bibliography#Callaghan 95]\]. |
...
For examples on how to check for the existence of a file without opening it, see recommendation FIO10-C. Take care when using the rename() function.
...
Wiki Markup |
---|
Section 12.3 of the GNU C Library says: \[[Loosemore 072007|AA. Bibliography#Loosemore 07]\] |
...
Wiki Markup |
---|
For code that operates on {{FILE}} pointers and not file descriptors, the POSIX {{fdopen()}} function can be used to associate an open stream with the file descriptor returned by {{open()}}, as shown in this compliant solution \[[Open Group 042004|AA. Bibliography#Open Group 04]\]. |
...
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Other Languages
Related Guidelines
CERT This rule appears in the C++ Secure Coding Standard as : FIO03-CPP. Do not make assumptions about fopen() and file creation.
Bibliography
Wiki Markup |
---|
\[[ISO/IEC 9899:1999|AA. Bibliography#ISO/IEC 9899-1999]\] Section 7.19.3, "Files," and Section 7.19.4, "Operations on Files" \[[ISO/IEC TR 24731-1:2007|AA. Bibliography#SO/IEC TR 24731-1-2007]\] Section 6.5.2.1, "The {{fopen_s}} function" \[[Loosemore 072007|AA. Bibliography#Loosemore 07]\] [Section 12.3, "Opening Streams"|http://www.gnu.org/software/libc/manual/html_node/Opening-Streams.html] \[[Open Group 042004|AA. Bibliography#Open Group 04]\] \[[Seacord 05a2005a|AA. Bibliography#Seacord 05]\] Chapter 7, "File I/O" |
...