# FS_FILEMODE_*

## 定義

    #define FS_FILEMODE_R               0x00000001UL
    #define FS_FILEMODE_W               0x00000002UL
    #define FS_FILEMODE_L               0x00000004UL
    #define FS_FILEMODE_RW              (FS_FILEMODE_R | FS_FILEMODE_W)
    #define FS_FILEMODE_RWL             (FS_FILEMODE_R | FS_FILEMODE_W | FS_FILEMODE_L)

## 説明

ファイルシステムAPIでファイルやディレクトリを開く際のアクセスモードを指定する際に使用する定数です。

FS_FILEMODE_R | 読み込みアクセスのみを要求します。
FS_FILEMODE_W | 書き込みアクセスのみを要求します。 既存のファイルが存在する場合はその内容が破棄され、サイズ0で新規に生成されます。
FS_FILEMODE_RW | 読み書き両方のアクセスを要求します。

FS_FILEMODE_RWL

読み書き両方のアクセスを要求しますが、開いた後にファイルサイズを変更する操作が禁止され、以下の内部チェックが自動的に有効になります。

- `FS_WriteFile()` による終端以降への追記操作が抑止されます。終端で呼び出すと0が返ります。
- `FS_SetFileLength()` によるサイズ変更操作が常に失敗し、FS_RESULT_PERMISSION_DENIEDが返ります。

## 参照

`FS_OpenFileEx FS_OpenDirectory`

## 履歴

2008/04/17 各オプションの詳細を追記
2008/04/14 FS_FILEMODE_Lオプションを追加
2007/09/18 初版