📄 fatlite.h
字号:
#if FILES > 0/*----------------------------------------------------------------------*//* f l O p e n F i l e *//* *//* Opens an existing file or creates a new file. Creates a file handle *//* for further file processing. *//* *//* Parameters: *//* irHandle : Drive number (0, 1, ...) *//* irFlags : Access and action options, defined below *//* irPath : path of file to open *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//* irHandle : New file handle for open file *//* *//*----------------------------------------------------------------------*//** Values of irFlags for flOpenFile: */#define ACCESS_MODE_MASK 3 /* Mask for access mode bits *//* Individual flags */#define ACCESS_READ_WRITE 1 /* Allow read and write */#define ACCESS_CREATE 2 /* Create new file *//* Access mode combinations */#define OPEN_FOR_READ 0 /* open existing file for read-only */#define OPEN_FOR_UPDATE 1 /* open existing file for read/write access */#define OPEN_FOR_WRITE 3 /* create a new file, even if it exists */#define flOpenFile(ioreq) flCall(FL_OPEN_FILE,ioreq)/*----------------------------------------------------------------------*//* f l C l o s e F i l e *//* *//* Closes an open file, records file size and dates in directory and *//* releases file handle. *//* *//* Parameters: *//* irHandle : Handle of file to close. *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//*----------------------------------------------------------------------*/#define flCloseFile(ioreq) flCall(FL_CLOSE_FILE,ioreq)#ifdef SPLIT_JOIN_FILE/*------------------------------------------------------------------------*//* f l S p l i t F i l e *//* *//* Splits the file into two files. The original file contains the first *//* part, and a new file (which is created for that purpose) contains *//* the second part. If the current position is on a cluster *//* boundary, the file will be split at the current position. Otherwise, *//* the cluster of the current position is duplicated, one copy is the *//* first cluster of the new file, and the other is the last cluster of the*//* original file, which now ends at the current position. *//* *//* Parameters: *//* file : file to split. *//* irPath : Path name of the new file. *//* *//* Returns: *//* irHandle : handle of the new file. *//* FLStatus : 0 on success, otherwise failed. *//* *//*------------------------------------------------------------------------*/#define flSplitFile(ioreq) flCall(FL_SPLIT_FILE,ioreq)/*------------------------------------------------------------------------*//* f l J o i n F i l e *//* *//* joins two files. If the end of the first file is on a cluster *//* boundary, the files will be joined there. Otherwise, the data in *//* the second file from the beginning until the offset that is equal to *//* the offset in cluster of the end of the first file will be lost. The *//* rest of the second file will be joined to the first file at the end of *//* the first file. On exit, the first file is the expanded file and the *//* second file is deleted. *//* Note: The second file will be open by this function, it is advised to *//* close it before calling this function in order to avoid *//* inconsistencies. *//* *//* Parameters: *//* file : file to join to. *//* irPath : Path name of the file to be joined. *//* *//* Return: *//* FLStatus : 0 on success, otherwise failed. *//* *//*------------------------------------------------------------------------*/#define flJoinFile(ioreq) flCall(FL_JOIN_FILE,ioreq)#endif /* SPLIT_JOIN_FILE *//*----------------------------------------------------------------------*//* f l R e a d F i l e *//* *//* Reads from the current position in the file to the user-buffer. *//* Parameters: *//* irHandle : Handle of file to read. *//* irData : Address of user buffer *//* irLength : Number of bytes to read. If the read extends *//* beyond the end-of-file, the read is truncated *//* at the end-of-file. *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//* irLength : Actual number of bytes read *//*----------------------------------------------------------------------*/#define flReadFile(ioreq) flCall(FL_READ_FILE,ioreq)/*----------------------------------------------------------------------*//* f l W r i t e F i l e *//* *//* Writes from the current position in the file from the user-buffer. *//* *//* Parameters: *//* irHandle : Handle of file to write. *//* irData : Address of user buffer *//* irLength : Number of bytes to write. *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//* irLength : Actual number of bytes written *//*----------------------------------------------------------------------*/#define flWriteFile(ioreq) flCall(FL_WRITE_FILE,ioreq)/*----------------------------------------------------------------------*//* f l S e e k F i l e *//* *//* Sets the current position in the file, relative to file start, end or*//* current position. *//* Note: This function will not move the file pointer beyond the *//* beginning or end of file, so the actual file position may be *//* different from the required. The actual position is indicated on *//* return. *//* *//* Parameters: *//* irHandle : File handle to close. *//* irLength : Offset to set position. *//* irFlags : Method code *//* SEEK_START: absolute offset from start of file *//* SEEK_CURR: signed offset from current position *//* SEEK_END: signed offset from end of file *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//* irLength : Actual absolute offset from start of file *//*----------------------------------------------------------------------*//** Values of irFlags for flSeekFile: */#define SEEK_START 0 /* offset from start of file */#define SEEK_CURR 1 /* offset from current position */#define SEEK_END 2 /* offset from end of file */#define flSeekFile(ioreq) flCall(FL_SEEK_FILE,ioreq)/*----------------------------------------------------------------------*//* f l F i n d F i l e *//* *//* Finds a file entry in a directory, optionally modifying the file *//* time/date and/or attributes. *//* Files may be found by handle no. provided they are open, or by name. *//* Only the Hidden, System or Read-only attributes may be modified. *//* Entries may be found for any existing file or directory other than *//* the root. A DirectoryEntry structure describing the file is copied *//* to a user buffer. *//* *//* The DirectoryEntry structure is defined in dosformt.h *//* *//* Parameters: *//* irHandle : If by name: Drive number (0, 1, ...) *//* else : Handle of open file *//* irPath : If by name: Specifies a file or directory path*//* irFlags : Options flags *//* FIND_BY_HANDLE: Find open file by handle. *//* Default is access by path. *//* SET_DATETIME: Update time/date from buffer *//* SET_ATTRIBUTES: Update attributes from buffer *//* irDirEntry : Address of user buffer to receive a *//* DirectoryEntry structure *//* *//* Returns: *//* irLength : Modified *//* FLStatus : 0 on success, otherwise failed *//*----------------------------------------------------------------------*//** Bit assignment of irFlags for flFindFile: */#define SET_DATETIME 1 /* Change date/time */#define SET_ATTRIBUTES 2 /* Change attributes */#define FIND_BY_HANDLE 4 /* Find file by handle rather than by name */#define flFindFile(ioreq) flCall(FL_FIND_FILE,ioreq)/*----------------------------------------------------------------------*//* f l F i n d F i r s t F i l e *//* *//* Finds the first file entry in a directory. *//* This function is used in combination with the flFindNextFile call, *//* which returns the remaining file entries in a directory sequentially.*//* Entries are returned according to the unsorted directory order. *//* flFindFirstFile creates a file handle, which is returned by it. Calls*//* to flFindNextFile will provide this file handle. When flFindNextFile *//* returns 'noMoreEntries', the file handle is automatically closed. *//* Alternatively the file handle can be closed by a 'closeFile' call *//* before actually reaching the end of directory. *//* A DirectoryEntry structure is copied to the user buffer describing *//* each file found. This structure is defined in dosformt.h. *//* *//* Parameters: *//* irHandle : Drive number (0, 1, ...) *//* irPath : Specifies a directory path *//* irData : Address of user buffer to receive a *//* DirectoryEntry structure *//* *//* Returns: *//* irHandle : File handle to use for subsequent operations. *//* FLStatus : 0 on success, otherwise failed *//*----------------------------------------------------------------------*/#define flFindFirstFile(ioreq) flCall(FL_FIND_FIRST_FILE,ioreq)/*----------------------------------------------------------------------*//* f l F i n d N e x t F i l e *//* *//* See the description of 'flFindFirstFile'. *//* *//* Parameters: *//* irHandle : File handle returned by flFindFirstFile. *//* irData : Address of user buffer to receive a *//* DirectoryEntry structure *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//*----------------------------------------------------------------------*/#define flFindNextFile(ioreq) flCall(FL_FIND_NEXT_FILE,ioreq)/*----------------------------------------------------------------------*//* f l G e t D i s k I n f o *//* *//* Returns general allocation information. *//* *//* The bytes/sector, sector/cluster, total cluster and free cluster *//* information are returned into a DiskInfo structure. *//* *//* Parameters: *//* irHandle : Drive number (0, 1, ...) *//* irData : Address of DiskInfo structure *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//*----------------------------------------------------------------------*/typedef struct { unsigned bytesPerSector; unsigned sectorsPerCluster; unsigned totalClusters; unsigned freeClusters;} DiskInfo;#define flGetDiskInfo(ioreq) flCall(FL_GET_DISK_INFO,ioreq)/*----------------------------------------------------------------------*//* f l D e l e t e F i l e *//* *//* Deletes a file. *//* *//* Parameters: *//* irHandle : Drive number (0, 1, ...) *//* irPath : path of file to delete *//* *//* Returns: *//* FLStatus : 0 on success, otherwise failed *//*----------------------------------------------------------------------*/#define flDeleteFile(ioreq) flCall(FL_DELETE_FILE,ioreq)#ifdef RENAME_FILE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -