## f_write

The f_write writes data to a file.

    FRESULT f_write (
      FIL* FileObject,     /* Pointer to the file object structure */
      const void* Buffer,  /* Pointer to the data to be written */
      UINT ByteToWrite,    /* Number of bytes to write */
      UINT* ByteWritten    /* Pointer to the variable to return number of bytes written */
    );

#### Parameters

FileObject
  Pointer to the open file object structure.
Buffer
  Pointer to the data to be written.
ByteToWrite
  Specifies number of bytes to write in range of UINT.
ByteWritten
  Pointer to the UINT variable to return the number of bytes written. The value is always valid after the function call regardless of the result.

#### Return Values

FR_OK (0)
  The function succeeded.
FR_DENIED
  The function denied due to the file has been opened in non-write mode.
FR_DISK_ERR
  The function failed due to an error in the disk function.
FR_INT_ERR
  The function failed due to a wrong FAT structure or an internal error.
FR_NOT_READY
  The disk drive cannot work due to no medium in the drive or any other reason.
FR_INVALID_OBJECT
  The file object is invalid.

#### Description

The read/write pointer in the file object is increased in number of bytes written. After the function succeeded, `*ByteWritten` should be checked to detect the disk full. In case of `*ByteWritten < ByteToWrite`, it means the volume got full during the write operation. The function can take a time when the volume is full or close to full.

#### QuickInfo

Available when `_FS_READONLY == 0`.

#### See Also

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

Return