## f_write

ファイルにデータを書き込みます。

    FRESULT f_write (
      FIL* FileObject,     /* ファイル・オブジェクト */
      const void* Buffer,  /* 書き込みデータ */
      UINT ByteToWrite,    /* 書き込むバイト数 */
      UINT* ByteWritten    /* 書き込まれたバイト数 */
    );

#### 引数

FileObject
  ファイル・オブジェクト構造体へのポインタを指定します。
Buffer
  書き込むデータを格納したバッファを指すポインタを指定します。
ByteToWrite
  書き込むバイト数(0〜UINTの最大値)を指定します。
ByteWritten
  書き込まれたバイト数を格納する変数を指すポインタを指定します。戻り値は関数の成否にかかわらず常に有効です。

#### 戻り値

FR_OK (0)
  正常終了。
FR_DISK_ERR
  ディスク・エラーによる失敗。
FR_INT_ERR
  不正なFAT構造または内部エラーによる失敗。
FR_NOT_READY
  メディアがセットされていないなど、物理ドライブが動作不能状態。
FR_DENIED
  非書き込みモードで開かれたファイルに書き込もうとした。
FR_INVALID_OBJECT
  無効なファイルオブジェクト。

#### 解説

書き込み開始位置は、リード/ライト・ポインタの位置からになります。リード/ライト・ポインタは実際に書き込まれたバイト数だけ進みます。関数が正常終了した後、要求したバイト数が書き込まれたかどうか`*ByteWritten`をチェックすべきです。`*ByteWritten < ByteToWrite`のときは、ディスク・フルを意味します。ディスク・フルが発生しているときまたはそれに近いときは、制御が帰るまで時間がかかる場合があります。

#### 対応情報

`_FS_READONLY == 0`のときに使用可能です。

#### 参照

`f_open, f_read, fputc, fputs, fprintf, f_close, FIL`

戻る