#include <cafe/fs.h> FSStatus FSOpenFile( FSClient *client, FSCmdBlock *block, const char *path, const char *mode, FSFileHandle *fileHandle, FSRetFlag errHandling ); FSStatus FSOpenFileAsync( FSClient *client, FSCmdBlock *block, const char *path, const char *mode, FSFileHandle *fileHandle, FSRetFlag errHandling, const FSAsyncParams *asyncParams );
|client||Pointer to the client buffer.|
|path||File path to open. Length must be less than
Short string parameter that specifies access mode. Length must be less than
|fileHandle||Pointer to the handle of file stream associated to the file to be opened.|
|errHandling||Auto error handling flag. Only indicated errors are returned.|
|asyncParams||(Async API only) Notification parameters for an asynchronous call.|
||The command was canceled.|
||System has too many file points to create more.|
||The file is already open.
You are trying to open the file illegally.
||Target not found.|
||Specified path is not a file.|
||Specified path includes the entry as directory, though it is not a directory.|
||Access mode is invalid (e.g. specified "r+" for read-only media).|
||The caller does not have correct access permission.|
||Journaling space is full and new journaling block cannot be allocated.|
||Data space cannot be allocated.|
||(Only for manually mounted devices) Media is not present.|
||(Only for manually mounted devices) Media is in some inaccessible condition.|
||(Only for manually mounted devices) The data is corrupted beyond repair. The volume needs format.|
||(Only for manually mounted devices) Media is write protected.|
||Successfully issued request.|
||The argument is invalid.|
Opens the file designated by path and creates a file stream associated with it. The position of the file stream is set to the head. mode is a short string parameter to specify access mode.
This API allows the same file to be opened multiple times.
However, the mode of the entire
FSOpenFile arguments must be
If you try to open the same file multiple times in non-
r mode or a file that is already open in non-
FS_STATUS_ALREADY_OPEN should return for such an attempt is invalid.
Both a sync and async style API are provided. To use the async API, set the user callback and parameters in asyncParams.
For more information, see
The generated file handle is stored in fileHandle when completed.
The generated file handle is positive value (>0) if the function succeeds. Otherwise, the handle value is
FS_INVALID_HANDLE_VALUE. The invalid handle value is not necessary to close.
|Thread that displays graphics||Do not call this function from a thread that displays graphics. This function may block indefinitely in error cases and the application must be able to display appropriate messages.|
|Thread that handles system messages||Do not call this function from a thread that handles system messages. This function may block indefinitely in error cases and the application must be able to handle system events such as shutdown.|
|Callbacks||Do not call this function from any callback function.|
|Interrupt handler||Do not call this function from any interrupt handler.|
|Exception handler||Do not call this function from any exception handler.|
2014/09/16 Added "Thread that displays graphics" and "Thread that handles system messages" to "Do not call from".
2013/12/04 Added FS_STATUS_STORAGE_FULL and FS_STATUS_JOURNAL_FULL to return values.
2013/06/11 Changed description about "w" and "w+" mode.
2013/06/06 Added FS_STATUS_NOT_DIR to return values.
2013/05/23 Added FS_STATUS_DATA_CORRUPTED to return values.
2013/05/20 Added FS_STATUS_MEDIA_NOT_READY and FS_STATUS_WRITE_PROTECTED to return values.
2013/05/08 Automated cleanup pass.
2013/03/13 Added "FS_STATUS_ALREADY_OPEN" to "Return Values".
2013/01/10 Added "Callback" to "Do not call from".
2012/07/19 Readability and correctness cleanup.
2011/12/12 Initial version.
2010/03/30 Fixed type name FSNotificationParams ->