X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/e1deb7c3bc0500aabf5d099adb231f6d1d27f01d..b30c4e8f1aef96f6fdc93da9f125545f5f74d06e:/fatfs/doc/en/sfile.html?ds=inline diff --git a/fatfs/doc/en/sfile.html b/fatfs/doc/en/sfile.html index 1ed9899..5e53d16 100644 --- a/fatfs/doc/en/sfile.html +++ b/fatfs/doc/en/sfile.html @@ -13,31 +13,25 @@

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. Note that a sector buffer is defined in this structure at non-tiny configuration (_FS_TINY == 0), so that the FIL structures at that configuration should not be defined as auto variable.

+

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 any data on the FAT volume can be collapsed. Note that a sector buffer is defined in this structure at non-tiny configuration (_FS_TINY == 0), so that the FIL structures at that configuration should not be defined as auto variable.

 typedef struct {
-    FATFS*  fs;           /* Pointer to the owner file system object */
-    WORD    id;           /* Owner file system mount ID */
+    _FDID   obj;          /* Owner file sytem object and object identifier */
     BYTE    flag;         /* File object status flags */
     BYTE    err;          /* Abort flag (error code) */
-    DWORD   fptr;         /* File read/write pointer (Byte offset origin from top of the file) */
-    DWORD   fsize;        /* File size in unit of byte */
-    DWORD   sclust;       /* File start cluster */
-    DWORD   clust;        /* Current cluster */
-    DWORD   dsect;        /* Current data sector */
+    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 !_FS_READONLY
-    DWORD   dir_sect;     /* Sector containing the directory entry */
+    DWORD   dir_sect;     /* Sector number containing the directory entry */
     BYTE*   dir_ptr;      /* Ponter to the directory entry in the window */
 #endif
 #if _USE_FASTSEEK
-    DWORD*  cltbl;        /* Pointer to the cluster link map table (Nulled on file open) */
-#endif
-#if _FS_LOCK
-    UINT    lockid;       /* Fle lock ID */
+    DWORD*  cltbl;        /* Pointer to the cluster link map table (Nulled on file open. Set by application.) */
 #endif
 #if !_FS_TINY
-    BYTE    buf[_MAX_SS]; /* File private data transfer buffer */
+    BYTE    buf[_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;