⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fatlite.h

📁 该程序是一个tffs文件系统的源码
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -