FatFS文件系统接口函数

所需积分/C币:14 2014-01-03 16:48:15 256KB PDF
76
收藏 收藏
举报

FatFS文件系统接口函数,FATFS文件系统开发必备手册。
WORD Index /*当前读写目录索引号*/ DWORD sclust /*目录表起始簇,表示根目录* DWoRd clust /*当前簇*/ DWoRd sect /*当前扇区* BYTE dir /*当前文什(SFN,知文件名)入口指针* BYTE* fn /*文件指针(in/out){file[8],ext[3], status[1]} #if USE LEN WCHAR* Ifn: /*长文件名缓区指针* Word fn id /*最后匹配的长文件名索引号(8xFF: NO LEN)*/ #endif MD 二、 FATFS文件系统AP参考 1. f mount函数,主要用来在 FatFS模块中注册/注销工作区 Result f mount BYTE Drive /逻辑驱动器号*/ FATFS File SystemObject /工作区域指针* 参数说明 Drive 注册/注销工作区域的逻辑驱动器号(0~9 File object被注册的工作区域(文件系统目标)指针。 函数返回值 FR OK(O) 函数执行成功 FR NVALID_ DRIVE指定的驱动器号非法 函数描述 f mount函数在FatS模块中注册/注销一个工作区。在使用其他文件函数前工 作区必须先使用这个函数给定每个卷。指定一个NUL到 File SystemObject,注销一个 工作区,然后工作区将被废弃。 不管驱动器处于何种状态,此函数总是返回成功。在此函数中不发生媒体访问 它只初始化给定的工作区域并且注册其地址到内部表。在 f mount函数执行或者媒 体改变后,在第一次文件访问时执行卷安装过程。 2. f open函数此函数的功能是创建一个将要访问的文件对象。 RESULT f open( FIL Fileobject /*空目标文件结构体指针*/ const Tchar* FileName /*文件名指针* BYTE Modeflags /文件打开模式标忐* 参数说明 File object 要创建的目标文什结构体指针 Filename 指定创建或打开以空终止的字符串文件名指针 指定访问或打开文件的模式类型。可以是以下标志的组合。 值 描述 指定读访问对象。可以从文件读取数据。与FA_WRTE组合为 FA READ 读写访问 指定写访问对象。可以向文件写入数据。与 FA READ组合为 FA WRITE 读写访问 FA OPEN EXISTING打廾文件。如果文件不存在,函数返回失败。(默认模式) 如果存在打开文件。如果文件不存在,创建一个新文件。在使 FA OPEN ALWAYS 用此模式打开文件后,使用 f seek函数,追加数据到文件 创建一个新文件。如果文件存在,函数执行失贩,并返回 FA CREATE NEW FR EXIST值。 FA_CREATE_ALWAYS创建一个新文件。如果文件存在,将被删节和复写 函数返回值 FR OK FR DISK ERR, FR INT ERR, FR NOT READY FR NO FILE FR NO PATH FR INVALID NAME FR DENIED FR EXIST ER WRITE PROTECTED. FR INVALID DRIVE FR NOT ENABLED, FR NO FILESYSTEM, FR TIMEOUT, FR LOCKED, FR NOT ENOUGH CORE FR TOO MANY OPEN FILES 函数描述 在 f open函数执行成功后,文件对象开始有效。文什对象用于随后指定文件的 读写函数。使用 f close函数米关闭打开的文件对象。如果更改的文件未被关闭,文 件数据可能崩溃 在使用任何文件跞数前,必须使用 f mount函数在逻辑驱动器上注册一个工作 区×(文件系统对象)。除 f fdisk函数外,所有的AP函数需在完成此过程后工作。 注意,当_ ES READONLY=1时,模式标志 FA WRITE,FA_ CREATE ALWAYS, FA CREATE NEW和 FA OPEN ALWAYS不可用。 3. f close函数,此函数的功能是关闭一个打开的文件。 FRESULT f close FIL* FileObject /*文件对象结构体指针* 参数说明 File object 将要关闭的已打开文件指针 函数返回值 FR OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR INVALID OBJECT FR TIMEOUT 函数描述 f close函数关闭一个打开的文件对象。如果有任何数据写入到了文伴,文件的 缓冲区信息被写回到磁盘。在 f close函数执行成功后,文件对象不再有效,并被丢 弃 4. f read函数,从文件读取数据 FRESULT f read( FIL File object, /咪文件对象结构体指针* void* Buffer /*读取数据缓冲区指针*/ UINT Byte ToRead /*读字节数*/ UINT* ByteRead /读字节数变量指针* 参数说明 Fileobject 打开的文件对象指针 Butter 存储读取数据缓冲区指针 Byte ToRead 在UINT范围内,读取的字节数 Byte Read 返回读取字节数的无符号整刑变量指针。这个值在函数调用后 有效,与函数执行结果无关。 函数返回值 FR OK.FR DISK ERR. FR INT ERR. FR NOT READY FR INVALID OBJECT FR TIMEOUT 函数描述 文件对象的文件指针随着读取字节数的增加而增加。在函数执行成功后,* Byte Read 应该是否检测到了文件结尾。在* Byte Read< Byte ToRead情况下,意味着在读操作 期间,读写指针到达了文件尾。 5. f write函数,写数据到文件 FRESULT f write( FIL File Object /文件对象结构体指针* const void Buffer, /*写入数据缓冲区指针*/ UINT Byte ToWrite, /*写字节数* UINT* Byte Written /写字节数变量指针* 参数说明 Fileobject 打开的文件对象指针 Buffer 存储写入数据缓冲区指针 Byte ToWrite 在UNT范围内,写入的字节数 ByteWrite 返回写入字节数的无符号整型变量指针。这个值在函数调用后 有效,与函数执行结果无关。 函数返回值 FR OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR INVALID OBJECT FR TIMEOUT 函数描述 文件对象的文件指针随着写入字节数的增加而增加。在函数执行成功后, *Byte Write应该是否检测到了文件结尾。当* Byte Write< ByteToWrite时,意味着在 写操作期间卷满了。当卷满或接近满时,函数可能会花费一些时间。 当_ FS READONLY==0时此函数可用。 6. f lseek函数 FRESULT f lseek FIL File Object /*文件对象结构体指针* DWORD Offset /*文件偏移量(单位:字节)*/ 参数说明 Fileobject 打开的文件对象指针 Offset 相对文件开头的字节数 函数返回值 R OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR INVALID OBJECT FR TIMEOUT 函数描述 f Iseek函数功能是移动一个打开文件的文件读写指针。偏移量可以被设定为唯 源自文件顶部。当个超过文件大小的偏移量在写模式下被设置吋,文件大小增 加到偏移量大小但在扩展区域中的数据是不确定的。这适合快速创建一个大文件, 快速的写文件。在 f Iseek函数成功执行后,应该检查文件对象结构体成员变量fptr 以确定读写指针是否被正确地移动。在fptr不是预期值的情况下,可能发生以下两 种情况。 文件结束。指定的偏移量被限制到文件大小,因为该文件已在只读模式打开。 伭盘满。卷上没有足够的空余空间来扩展文件大小 USE_ FASTSEEK置1时使能快速搜索模式,并且文件对象结构体中成员ctbl 不为NUL。此功能通过访问存储在用户定义表中的簇链接映射表CLMT)实现了无 文件分区表(FAT)快速后退/长搜索操作。它也适用于 f read/ f write函数。在此模式 下,文件大小不能被 f write/ F Iseek函数增加 在使用快速搜索功能前,CLMT必须事先创建在用户定义的 DWORD数组中 创建CLMT设胃文件对象结构成员ctbl指向 DWORD数组指针,在数组第一个条日 中设置以条目为单位的数组大小,并以参数Oset= CREATE LINKMAP调用 凶数。在函数成功执行后CLMT被创建,随后的 f read/ f write/ f lseek函数访问文 件无需文件分区表。如果函数执行失败返回 FR NOT ENOUGH CORE,表明给定的 数组大小不足以容下该文件,并且将需要的条目数返回到数组的第一个条目中。需 要的数组大小是( number of fragments+1)*2条。例如,当文件分为5个片段时, CLMT需要12个条目。 此函数当 FS MINIMIZE<=2时可用。 7. f truncate函数 FRESULT f truncate( FL* FileObject/*文件对象结构体指针* 参数说明 Fileobject 被截断的文件对象指针 函数返回值 FR OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR INVALID OBJECT, FR TIMEOUT 函数描述 f truncate函数截短文件大小到当前文件读写点处。如果文件读写点已经到达 文件结尾对此函数没有影响。 当_ FS READONLY==0 and s minimize=0时,此函数可用 8.fsnc函数 FRESULT f sync( FL* FileObject/*文件对象结构体指针t* 参数说明 Fileobject 被清除的文件对象指针 函数返回值 FR OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR INVALID OBJECT, FR TIMEOUT 函数描述 f sync函数执行了与 f close函数相同的过程,但其运行后保持文件打开状态, 仍可以继续对文件进行读、写、搜索等操作。这样比较适合长时间写模式打开文件 的应用,例如数据日志记录应用。在执行 f sync函数期间或者在 f write函数执行 后立即运行 f sync函数可以把由」突然断电或者憾盘的意外移除造成数据丢失的 风险降到最低。然而,由于在 f close函数执行中凵经执行了 f sync相同的功能, 所以在 f close函数之前执行fsnc函数没有任何优点。换言之,这两个函数之间 的区别是文件对象是否失效 当 FS READONLY==0时此函数可用。 9. f opendir函数 FRESULT f opendir DIR* DirObject /*目录对象结构体指针* const tChar* DirName /*目录名指针 参数说明 DirObiect 目录对象结构体指针 Dir name 以空终止的字符串表示的要打开的目录名指针 函数返回值 FR OK. FR DISK ERR FR INT ERR FR NOT READY FR NO PaTH FR INVALID NAME FR INVALID DRIVE, FR NOT ENABLED, FR NO FILESYSTEM FR TIMEOUT. FR NOT ENOUGH CORE 函数描述 此函数打开一个已经存在目录并且为随后的调用创建一个目录对象。目录对象 结构体可以随时无任何手续被丢弃 当 FS MINIMIZE<=1时,此函数可用 10. f readdir函数 FRESULT f readdir DIR DirOb /目录对象结构体指针* FILINFO* FileInfo /*文件信息结构体指针*/ 参数说明 Dir Object 打开的目录对象结构体指针 Filelnfo 存储在读条目中的文件信息结构指钆 函数返回值 FR OK. FR DISK ERR. FR INT ERR. ER NOT READY FR INVALID OBJECT FR TIMEOUT. FR NOT ENOUGH CORE 函数描述 f readdir函数按顺序读取目录条目。反复调用 f readdir函数可以读取目录的 所条目。当已读完所有的目录条目并且没有其他条目可读时,函数返回一个空字 符串到成员变量fηame[中,并且不返回错误提示。当 FileInfo指向一个空指针 读取的目录对象将被倒回 LFN被打开时,文件信息结构体中的ame和|se必须在使用 f readdir 函数前初始化为有效值。name是一个返回长文件名的字符串缓冲区指针。|fsze 表示以 TCHAR为单位的字符串缓冲区的大小。如果读缓冲区或LFN工作缓冲区容 量不够存储LFN或者对象没有LFN,将返回个空字符串到LFN读缓冲区。在没有 对 Unicode apl配置的情况下,如果LFN包含任何不能转换成OEM码的字符,将返 回一个空字符串。当 Iframe是NULL时,LFN没有仟何返回。当对象没有LFN时, 一些小写字母被包含到SFN中。 当相关的路径特征被使能(「 SRPATH==1)〃"和”"不被过滤并且将出现在 所读条目中。 当_ FS MINIMIZE<=1时,此函数可用 11. f getfree函数 FRESULT f getfree( const tchar path /*逻辑驱动器号*/ DWORD* Clusters /*存储空白簇变量指针*/ FATFS* File Systemobject /指向文件系统对象指针的指针*/ 参数说明 以空字符终止的字符串表示的逻辑驱动器指针 Clusters 存储空闲簇数量的 DWORD类型变量指针 FileSystemObject存储相应文件系统对象指针的指针 函数返回值 FR OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR INVALID OBJECT,FR NOT ENABLEDFR NO FILESYSTEM FR TIMEOUT 函数描述 f_ getfree函数获取驱动器的空白簇数量。 File object-> . csize反映了每簇的 扇区数量,因此以扇区为单位的空闲空间可以用这个成员来计算。当 FSInfo结构体 与FAT32卷不同步,函数返冋的空闲簇数量可能不正确 当 FS READONLY==0 and s minimize==0时,此函数可用。 12. f stat函数 FRESULT f stat( const TChAr* FileName /*文件或目录指针* FILINFO FileInfo /咪 FILINFO结构指针* ); 参数说明 Filename要获取信息的以空字符终止的字符串表示的文什或文件目录指针 Filelnfo存储信息的空 FILINFC结构体指针 函数返回值 FR OK, FR DISK ERR, FR INT ERR, FR NOT READY, FR NO FILE, FR NO PATH FR INVALID NAME, FR INVALID DRIVE, FR NOT ENABLED, FR NO FILESYSTEM FR TIMEOUT FR NOT ENOUGH CORE 函数描述 stat函数用来获取文件或日录信息。对于更详细的信息,请参考 FILINFO结 构体和 f readdir函数。这个函数不支持最小化水平的>=1。 13.fmkd函数 FRESULT f mkdir const tchar Dirname /*目录名指针*/

...展开详情
试读 21P FatFS文件系统接口函数
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
liverdream 不错的资料谢谢分享
2015-03-06
回复
yx2012_ 不错,很好的资料
2014-09-27
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚积分or赚钱
最新推荐
FatFS文件系统接口函数 14积分/C币 立即下载
1/21
FatFS文件系统接口函数第1页
FatFS文件系统接口函数第2页
FatFS文件系统接口函数第3页
FatFS文件系统接口函数第4页
FatFS文件系统接口函数第5页

试读结束, 可继续读2页

14积分/C币 立即下载 >