When an application needs to access a file, it must first open it using fs_fopen()
or FSFile_Open()
. For most applications, the former with its familiar interface suffices. In some cases, the flexibility of the latter is demanded (see ).
The return value of this function should always be verified as non-NULL before the application proceeds to access the file. The second argument to this function is a logical OR of mode flags:
FS_FILE_ACCESS_MODE_RD
File opened for reads.
FS_FILE_ACCESS_MODE_WR
File opened for writes.
FS_FILE_ACCESS_MODE_CREATE
File will be created, if necessary.
FS_FILE_ACCESS_MODE_TRUNC
File length will be truncated to 0.
FS_FILE_ACCESS_MODE_APPEND
All writes will be performed at EOF.
FS_FILE_ACCESS_MODE_EXCL
File will be opened if and only if it does not already exist.
FS_FILE_ACCESS_MODE_CACHED
File data will be cached.
For example, if you wanted to create a file to write to if and only if it does not exist, you would use the flags
FS_FILE_ACCESS_MODE_WR | FS_FILE_ACCESS_MODE_CREATE | FS_FILE_ACCESS_MODE_EXCL
It is impossible to do this in a single, atomic operation using fs_fopen()
.
The table below lists the mode flag equivalents of the fs_fopen()
mode strings.