首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FatFS文件系统 (2)

FatFS文件系统 (2)

如果函数成功,则创建一个文件对象。该文件对象被后续的读 / 写函数用来访问文件。如果想要关闭一个打开的文件对象,则使用 f_close 函数。如果不关闭修改后的文件,那么文件可能会崩溃。在使用任何文件函数之前,必须使用 f_mount 函数为驱动器注册一个工作区。只有这样,其他文件函数才能正常工作。  



3.f_close  



关闭一个打开的文件   

FRESULT f_close (

  FIL* FileObject          /*  文件对象结构的指针  */

);



参数   

FileObject  

指向将被关闭的已打开的文件对象结构的指针。   

返回值   

FR_OK (0)  

文件对象已被成功关闭。  

FR_DISK_ERR  

由于底层磁盘 I/O 函数中的错误,而导致该函数失败。

FR_INT_ERR  

由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。   

FR_NOT_READY  

由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。   

FR_INVALID_OBJECT  

文件对象无效。




f_close 函数关闭一个打开的文件对象。无论向文件写入任何数据,文件的缓存信息都将被写回到磁盘。该函数成功后,文件对象不再有效,并且可以被丢弃。如果文件对象是在只读模式下打开的,不需要使用该函数,也能被丢弃。




4.f_read  

从一个文件读取数据   

FRESULT f_read (

  FIL* FileObject,         /*  文件对象结构的指针  */

  void* Buffer,            /*  存储读取数据的缓冲区的指针  */

  UINT ByteToRead,         /*  要读取的字节数  */

  UINT* ByteRead           /*  返回已读取字节数变量的指针  */

);

参数   

FileObject  

指向将被读取的已打开的文件对象结构的指针。   

Buffer  

指向存储读取数据的缓冲区的指针。   

ByteToRead  

要读取的字节数, UINT 范围内。   

ByteRead  

指向返回已读取字节数的 UINT 变量的指针。在调用该函数后,无论结果如何,数值都是有效的。




返回值   

FR_OK (0)  

函数成功。   

FR_DENIED  

由于文件是以非读模式打开的,而导致该函数被拒绝。   

FR_DISK_ERR  

由于底层磁盘 I/O 函数中的错误,而导致该函数失败。   

FR_INT_ERR  

由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。   

FR_NOT_READY  

由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。   

FR_INVALID_OBJECT  文件对象无效。




文件对象中的读 / 写指针以已读取字节数增加。该函数成功后,应该检查  *ByteRead  来检测文件是否结束。在读操作过程中,一旦  *ByteRead < ByteToRead  ,则读 / 写指针到达了文件结束位置。






5.f_write


写入数据到一个文件   

FRESULT f_write (

  FIL* FileObject,         /*  文件对象结构的指针  */

  const void* Buffer,      /*  存储写入数据的缓冲区的指针  */

  UINT ByteToWrite,        /*  要写入的字节数  */

  UINT* ByteWritten        /*  返回已写入字节数变量的指针  */

);

参数   

FileObject  

指向将被写入的已打开的文件对象结构的指针。   

Buffer  

指向存储写入数据的缓冲区的指针。

ByteToRead  

要写入的字节数, UINT 范围内。   

ByteRead  

指向返回已写入字节数的 UINT 变量的指针。在调用该函数后,无论结果如何,数值都是有效的。   

返回值   

FR_OK (0)  

函数成功。   

FR_DENIED  

由于文件是以非写模式打开的,而导致该函数被拒绝。   

FR_DISK_ERR  

由于底层磁盘 I/O 函数中的错误,而导致该函数失败。   

FR_INT_ERR  

由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。   

FR_NOT_READY  

由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。   

FR_INVALID_OBJECT  文件对象无效。   




文件对象中的读 / 写指针以已写入字节数增加。该函数成功后,应该检查  *ByteWritten  来检测磁盘是否已满。在写操作过程中,一旦  *ByteWritten < *ByteToWritten  ,则意味着该卷已满。
继承事业,薪火相传
返回列表