## f_read

The f_read function reads data from a file.

    FRESULT f_read (
      FIL* fp,     /* [IN] File object */
      void* buff,  /* [OUT] Buffer to store read data */
      UINT btr,    /* [IN] Number of bytes to read */
      UINT* br     /* [OUT] Number of bytes read */
    );

#### Parameters

fp
  Pointer to the open file object.
buff
  Pointer to the buffer to store read data.
btr
  Number of bytes to read in range of `UINT` type.
br
  Pointer to the `UINT` variable to return number of bytes read. This value is always valid after the function call regardless of the function return code.

#### Return Values

FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_DENIED, FR_INVALID_OBJECT, FR_TIMEOUT

#### Description

The function starts to read data from the file at the position pointed by the read/write pointer. The read/write pointer advances as number of bytes read. After the function succeeded, `*br` should be checked to detect end of the file. In case of `*br` < `btr`, it means the read/write pointer reached end of the file during read operation.

#### QuickInfo

Always available.

#### See Also

`f_open, fgets, f_write, f_close, FIL`

Return