从你的题目来看,fs这个指针数圆颤顷组是一组在RAM建立橘陆的洞运镜像,指向FAT文件系统的,所以,如果你熟悉FAT文件系统的话,可以通过这个指针,找到文件的各个属性像,例如,大小,名字,扩展名,时间等等
返回码有很多,最主要的是 FR_OK
当打开一个文件时, *** 作完成后进行关闭,这个很简单
第一衡告个参数
看下面的调用函数
读的文件结构体是fsrc,将数据读入到buffer中,读出的数量为buffer数,而br用于累积已经完成了多少读出
下面的函数可以看出,写入结构体为fdst,将buffer中的内容进行写入,数量为刚刚计算的BR,BW用于累积写入的数量。
也就是是将尺寸压缩到现在的指针位置,也就是说,把后面的全部删除。
功能基本上同f_close ,但是还可以继续进行读写查询的 *** 作,用于那种用于需要长时间打开的 *** 作,用此函数可以避免出错。
f_forward函数从文件中读取数据并将数据转发到输出流,而不使用数据缓冲区。这适用于小存储系统,因为它在应用模块中不需要任何数据缓冲区。比如音频播放就可以用到此功能。
给文件分配一个连续空间,如下:其中malloc的用法为:
以特定格式写入到文件中,如下:
获取一下当前的读写指针
测试是不是文件的毁歼最尾端,如果是最尾端,则返回一个值。
获取一个文件的尺寸
测试是否有硬件错误发生,并不执行任何实际 *** 作。
在下面的这个函数纤拦冲中,用到了f_opendir和f_closedir和f_readdir
而f_findfirst为打开一个目录,然后读第一条。
而f_findnext为打开一个目录,读下一条匹配的标题。
上面关于目录管理的函数,在文件数量比较大一点的系统中可以用到,我们控制器的文件目录都比较简单,暂时不要考虑。
最重要的一个函数来了:
挂载一个磁盘或者释放一个磁盘:
比如:
比如在f_mkfs前先创建f_fdisk
fatfs文件系统支持4GB文件。
disk_initialize()等函数是FATFS底层的几个接口,移植实现后,FATFS的 *** 作跟WINDOWS上的文件 *** 作差不多一样,FATFS源代码里有说明文档自己看,不过设备要先挂载,如果原来的设备没有文件系统,还要格式化一下,才能用。
对于FAT16文件系统,可以保存的文件体积最大值是4 GB - 1 byte (2^32 bytes - 1 byte);卷的最大体积是4GB;每个卷上最多可以保存的文件数量是65,536个 (2^16);根目录下可以保存的文件和文件夹数量最大值是512个(如果使用了长文件名,该数字还会键清减小)。
FatFs 提供下面的函数:
f_mount - 注册/注销一个工戚铅作区域(Work Area)
f_open - 打开/创建一个文件
f_close - 关闭一个文件
f_read - 读文件
f_write - 写文件
f_lseek - 移动文件读/写指针
f_truncate - 截断文件稿仔前
f_sync - 冲洗缓冲数据 Flush Cached Data
f_opendir - 打开一个目录
f_readdir - 读取目录条目
f_getfree - 获取空闲簇 Get Free Clusters
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)