1)第一次f_open之后,f_close返回FR_DISK_ERR; ( 2)第二次f_open直接返回FR_LOCKED。 从上述两个问题分析:FR_DISK_ERR已经告知了我们底层I/O有问题。FR_LOCKED告知了我们文件被锁住了,也就是说重复打开同一个文件。 I/O控制的实现,主要通过disk_ioctl接口,改接口的实现内容要求如下: 很明显,CTRL_SYNC.....
Duplicated File Open 复制打开的文件 和window文件一样,打开一个文件,则文件处于写的模式,但是复制的时候,是处于读的模式,两种模式是冲突的。当然打开的文件也不能重命名和删除,否则数据会出现冲突。 我们可以通过FF_FS_LOCK来打开这个设置的开关,关闭以后,如果进行操作会返回FR_LOCKED的状态。
f_open打开并创建一个文件对象,打开的文件应该在使用后调用f_close关闭文件 如果对文件进行了更改,并且在断电、删除介质或从新挂载前未关闭,则文件可能会崩溃 只能以读的方式重复打开一个文件,不能以任何具有写模式的方式重复打开一个文件(第二次打开不成功 FR_LOCKED, 哪怕第二次是只读、只打开) 当把FATFS配置...
f_close(&fsrc);} } } if (f_opendir(&dirs, (const TCHAR*)"0:/Song") == FR_OK)这里...
FR_LOCKED, /* (16) The operation is rejected according to the file sharing policy */ FR_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */ FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_SHARE */ FR_INVALID_PARAMETER /* (19) Given parameter is...
问题没表述清楚,f_open的返回不为零的可能性有很多种,你可以根据具体的返回值,找到错误类型 下面是具体的错误类型:typedef enum { FR_OK = 0,/* (0) Succeeded */ FR_DISK_ERR,/* (1) A hard error occurred in the low level disk I/O layer */ FR_INT_ERR,/* (2) Assertion ...
"FR_LOCKED:由于文件共享策略操作被拒绝", /* (16) The operation is rejected according to the file sharing policy */ "FR_NOT_ENOUGH_CORE:无法分配长文件名工作区", /* (17) LFN working buffer could not be allocated */ "FR_TOO_MANY_OPEN_FILES:当前翻开的文件数大于_FS_SHARE", /* (18) ...
FATFS文件系统接口函数
"FR_LOCKED:由于文件共享策略操作被拒绝", /* (16) The operation is rejected according to the file sharing policy */ "FR_NOT_ENOUGH_CORE:无法分配长文件名工作区", /* (17) LFN working buffer could not be allocated */ "FR_TOO_MANY_OPEN_FILES:当前打开的文件数大于_FS_SHARE", /* (18) ...
FR_LOCKED, /* (16) 因为文件共享策略导致操作被拒绝 */ FR_NOT_ENOUGH_CORE, /* (17) 不能分配长文件名工作缓存区 */ FR_TOO_MANY_OPEN_FILES, /* (18) 打开文件个数大于_FS_LOCK */ FR_INVALID_PARAMETER /* (19) 无效参数 */ } FRESULT; 下图所示为带有 FatFs 模块的嵌入式系统的典型但非...