## FIL

The `FIL` structure (file object) holds the state of an open file. It is created by `f_open` function and discarded by `f_close` function. Application program must not modify any member in this structure except for `cltbl`, or the FAT volume will be collapsed. Note that a sector buffer is defined in this structure at non-tiny configuration (`FF_FS_TINY == 0`), so that the `FIL` structures at that configuration should not be defined as auto variable.

    typedef struct {
        FFOBJID obj;          /* Object identifier */
        BYTE    flag;         /* File object status flags */
        BYTE    err;          /* Abort flag (error code) */
        FSIZE_t fptr;         /* File read/write pointer (Byte offset origin from top of the file) */
        DWORD   clust;        /* Current cluster of fptr (One cluster behind if fptr is on the cluster boundary. Invalid if fptr == 0.) */
        DWORD   sect;         /* Current data sector (Can be invalid if fptr is on the cluster boundary.)*/
    #if !FF_FS_READONLY
        DWORD   dir_sect;     /* Sector number containing the directory entry */
        BYTE*   dir_ptr;      /* Ponter to the directory entry in the window */
    #endif
    #if FF_USE_FASTSEEK
        DWORD*  cltbl;        /* Pointer to the cluster link map table (Nulled on file open. Set by application.) */
    #endif
    #if !FF_FS_TINY
        BYTE    buf[FF_MAX_SS]; /* File private data transfer buffer (Always valid if fptr is not on the sector boundary but can be invalid if fptr is on the sector boundary.) */
    #endif
    } FIL;

Return